API Reference
Introduction
Humaans API is organized around REST. Our API has consistently structured resource-oriented URLs, accepts and returns JSON, and uses standard HTTP response codes, authentication, and verbs.
Use Humaans API to retrieve or modify data stored in your Humaans account programmatically and to create custom integrations.
Authentication
Humaans API uses API access tokens to authenticate requests. You can view and manage your API access tokens in Humaans.

Your API access tokens carry many privileges, so be sure to keep them secure! Do not share your secret API access tokens in publicly accessible areas such as GitHub, client-side code, and so forth.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
The API access token should be passed as a Bearer authorization header, e.g.:
curl https://app.humaans.io/api/me \
-H 'Authorization: Bearer <your_api_access_token>'
Scopes
The API access token can be restricted to certain scopes, which limits what actions the API access token can perform.
Scopes
-
public:read
Allow view access to data that is public to the entire company
-
private:read
Allow view access to all data except compensations and documents
-
private:write
Allow modifying all data except compensations and documents
-
compensations:read
Allow view access to compensation data
-
compensations:write
Allow modifying compensation data
-
documents:read
Allow view access to personal documents and identity documents
-
documents:write
Allow modifying personal documents and identity documents
-
webhooks:manage
Allow view and modifying access to webhooks
For example, if an owner creates an access token with private:read scope, that token will be able to access the full profile details of each employee, such as their job title, place of work, teams, banking details, emergency contacts and time away entries with specific leave reasons notes. But if the same owner creates an access token with public:read scope, that token will only be able to access the public details of every profile that everyone in the company has access to already, such as job title, place of work, teams and time away entries without specific leave reasons or notes. The access tokens with public:read tokens are great for many internal applications that only need the rich public metadata about the company and its employees found in the Humaans API.
Roles
In addition to scopes, the API access tokens are limited to only perform the actions that the creator of the API access token can perform. For example, if a user with a role owner creates a token, that token will be able to access and modify every employee’s profile. But if a user with role user creates a token, that token will only be able to access the public company information and their own profile details.
Roles
-
Owner
Has full access to read and modify all employees and data.
-
Admin
Can access and edit all profiles.
-
Finance
Can access all profiles and manage the subscription.
-
Tech
View limited data for all profiles. Manage equipment. No access to documents or sensitive data by default.
-
Manager
Can access some profile data for their reports. Unlike the other roles, Manager is inferred from reporting lines and cannot be assigned directly.
-
User
Can access their own profile data.
Note that access to compensation is only available to owner and finance roles (and the employee) by default. Access to personal documents is only available to owner (and the employee) by default. You can set custom permissions to allow admin and finance roles and managers to access compensation and documents.
Structure
You will find the structure of the API to be highly uniform and consistent. Typically every resource can be accessed via a top level endpoint, such as /api/people. For every such resource, you can perform some of the following operations:
Operations
-
GET /api/:resource
List all objects of this type
-
GET /api/:resource/:id
Retrieve a resource by id
-
POST /api/:resource
Create a resource of this type
-
PATCH /api/:resource/:id
Update the resource by id
-
DELETE /api/:resource/:id
Delete the resource by id
In terms of the information hierarchy, at the center we have a company. The company has a set of resources such as people, locations and time away policies. Each person has further resources, such as job roles, bank accounts and documents.
Pagination
Almost all resources have support for listing all the records by paging over them. These list API methods share a common structure and can optionally take two parameters: $limit and $skip.
-
$limitnumber
Limit the number of results. Default value is 100. Maximum allowed value is 250.
-
$skipnumber
Skip the specified number of results.
Here’s an example of how you’d fetch all people from the API:
curl 'https://app.humaans.io/api/people' -g \
-H 'Authorization: Bearer <your_api_access_token>'
# -> { "total": 152, "limit": 100, "skip": 0, "data": [.. 100 items ..] }
curl 'https://app.humaans.io/api/people?$skip=100' -g \
-H 'Authorization: Bearer <your_api_access_token>'
# -> { "total": 152, "limit": 100, "skip": 100, "data": [.. 52 items ..] }
Note: the -g, --globoff argument and single quotes '' are used in some of the curl examples, to allow usage of $ and [] commonly used in Humaans API.
Filtering
Some list endpoints allow you to filter results by certain conditions. Refer to specific resources to find out what criteria are allowed. Below is a list of the different types of conditions.
In resource type labels, value types appear before · and supported filter operators appear after it. When operator groups accept different value types, / separates each group from its accepted types.
string, number, boolean
Find all results matching the attribute value specified.
GET /api/example?personId=IL3vne
$in, $nin
Find all results matching ($in) or not matching ($nin) any of the attribute values specified.
GET /api/example?personId[$in]=IL3vne&personId[$in]=5dPtfT
$gt, $gte
Find results where the value is greater than ($gt) or greater than or equal to ($gte) a given value.
GET /api/example?startDate[$gte]=2020-01-01
$lt, $lte
Find results where the value is less than ($lt) or less than or equal to ($lte) a given value.
GET /api/example?startDate[$lte]=2020-12-31
$or
Find results using multiple conditions.
GET /api/example?$or[0][personId]=IL3vne&$or[1][startDate][$gte]=2020-01-01
Data warehouse
To load Humaans data into a data warehouse, start with a full import of each resource. Request the maximum page size of 250 records, then increase $skip until the response contains no more records.
Offset pagination reads live data. For a consistent initial load, run the import while the source data is stable; records created or deleted during the import can shift later pages.
curl 'https://app.humaans.io/api/people?$limit=250&$skip=0' -g \
-H 'Authorization: Bearer <your_api_access_token>'
For later imports, record the start time of each run. Fetch records whose updatedAt value is greater than or equal to the previous run’s start time, paginate through the results, and upsert each record by id.
curl 'https://app.humaans.io/api/people?updatedAt[$gte]=2026-08-27T10:00:00.000Z&$limit=250&$skip=0' -g \
-H 'Authorization: Bearer <your_api_access_token>'
Use $gte to overlap consecutive runs and avoid missing records that share the cursor timestamp. After the resource import succeeds, save the current run’s start time as the next cursor.
For list endpoints that support includeDeleted, run a separate query for deleted records. Deleted records are returned as minimal tombstones containing an id and deletedAt. Remove the matching record from the warehouse.
curl 'https://app.humaans.io/api/people?includeDeleted=true&deletedAt[$gte]=2026-08-27T10:00:00.000Z&$sort[deletedAt]=1&$sort[id]=1&$limit=250&$skip=0' -g \
-H 'Authorization: Bearer <your_api_access_token>'
The API returns only records deleted within the last 30 days. Run an incremental import more often than every 30 days. Check each list endpoint to confirm that it supports updatedAt and includeDeleted.
Rate limiting
Each API access token has its own rate limit, so no single integration can overwhelm the platform. Requests made from within the Humaans app are not affected. The limit supports roughly 400 requests per minute under a steady request pattern.
The limit uses a token bucket: each token gets a bucket of 40 requests that refills at 7 per second. Every request spends one token and once the bucket is empty requests are rejected until it refills. So you can burst up to 40 requests at once, then settle to the steady refill rate.
When rate limiting is active for a token, responses include headers describing the current allowance so you can adapt before hitting the limit:
Rate limit headers
-
X-RateLimit-Limit
The maximum number of requests the token bucket can hold, i.e. the largest burst you can make when the bucket is full.
-
X-RateLimit-Remaining
The number of requests you can still make right now before being rate limited.
-
X-RateLimit-Policy
The active policy, formatted as
<limit>;refill=<tokens per second>. For example40;refill=7means a bucket of 40 that refills at 7 requests per second. -
Retry-After
Only present on
429responses. The number of seconds to wait before retrying the request.
When you exceed the limit, the API responds with a 429 Too Many Requests error and a Retry-After header telling you how many seconds to wait before retrying:
curl -i 'https://app.humaans.io/api/people' -g \
-H 'Authorization: Bearer <your_api_access_token>'
# -> HTTP/1.1 429 Too Many Requests
# -> X-RateLimit-Limit: 40
# -> X-RateLimit-Remaining: 0
# -> X-RateLimit-Policy: 40;refill=7
# -> Retry-After: 1
Avoiding rate limits
The most reliable way to stay within the limit is to make fewer, larger requests rather than polling the API with many small ones:
- Combine requests. Fetch records in bulk from the list endpoints instead of requesting them one at a time.
- Use larger pages. Raise
$limit(up to a maximum of 250) so you retrieve more records per request when paginating. - Filter server side. Use filtering to request only the records you need, instead of fetching everything and filtering in your own code.
- Prefer webhooks over polling. Subscribe to webhooks to be notified of changes as they happen, rather than repeatedly polling for updates.
- Respect
Retry-After. When you receive a429, wait for the number of seconds given in theRetry-Afterheader and back off, rather than retrying immediately.
Errors
Humaans uses conventional HTTP status codes to indicate whether an API request succeeded. Codes in the 2xx range indicate success. Codes in the 4xx range mean the request could not be completed as sent, for example because a required parameter was omitted or the token lacks permission. Codes in the 5xx range mean Humaans could not complete a valid request.
Error object
-
idstring
Unique identifier for this specific error instance, useful when provided in support queries.
-
codenumber
The numeric code of the error, e.g. 401 or 422.
-
namestring
The string name of the code, e.g. NotAuthenticated or ValidationError.
-
messagestring
A human-readable description of the issue.
-
traceIdstring
An identifier used to correlate the error with a server trace. This field is omitted when no trace is available.
-
subTypestring
A more specific error classification. This field is omitted when no subtype is available.
-
issuesobject[]
Details for validation, permission, or request errors. This field is omitted when no details are available.
-
issues[].namestring
The name of the field that failed validation.
-
issues[].reasonstring
The reason why this field was invalid.
-
issues[].indexnumber
The index of the item that this issue applies to in cases where the input is a list of objects.
-
issues[].entityIdstring
The identifier of the entity associated with a nested group of issues.
-
issues[].entityPathstring[]
The path to the entity associated with a nested group of issues.
-
issues[].issuesobject[]
A nested list of issues for the associated entity.
Error codes
-
400BadRequest
The request is invalid
-
401NotAuthenticated
Missing or invalid access token
-
403Forbidden
The provided access token does not have sufficient privileges
-
404NotFound
The requested resource could not be found
-
405MethodNotAllowed
The operation is not allowed for this resource
-
409Conflict
The request conflicts with the current state of the resource
-
413PayloadTooLarge
The request payload is too large
-
422ValidationError
The request parameters are invalid
-
422Unprocessable
The request is well-formed but cannot be processed
-
422EmailTaken
Returned when a user is being re-onboarded, but their email is already taken
-
429TooManyRequests
The access token has exceeded its rate limit. See rate limiting for details
-
500GeneralError
An unexpected server error occurred
-
502GeneralError
A temporary upstream availability issue occurred
-
503GeneralError
A temporary availability issue occurred
Versioning
Humaans API currently does not use versioning. We are committed to not introducing any backward incompatible changes outside possible feature removal. If we do remove certain features, we will make sure that the API for such features continues returning the correct response structure. We might remove some APIs in cases where they are not being actively used. And if we have to introduce versioning, it will be done without breaking the existing API.
Webhooks
Webhooks allow you listen to events happening in Humaans, as they happen. A webhook may be created by an Owner on the webhooks page. Once a webhook is created, it must be published to be made active and for the endpoint to receive events from the Humaans platform. Webhooks can be created programmatically by interacting with the webhooks service.
Webhook events have a generic wrapper, with event specific data contained within, this is documented below.
The validity of a webhook event can be confirmed by it’s signature, this can be confirmed by using the secret provided to you when test and production urls are set. The signature is a HMAC SHA-256 encoded string consisting of the webhook id, timestamp and body, and can be verified by creating your own signature to compare:
import { createHmac } from 'crypto'
const body = await getBody(request)
const {
'webhook-id': id,
'webhook-signature': receivedSignature,
'webhook-timestamp': timestamp,
} = request.headers
const signature = receivedSignature.replace('v1,', '')
const signedContent = `${id}.${timestamp}.${body}`
// Looks like whsec_vwbddlgH8lyKqHEDzn3EUpmk
const secret = process.env.HUMAANS_WEBHOOK_SECRET
const secretBytes = Buffer.from(secret.split('_')[1], 'base64')
const generatedSignature = createHmac('sha256', secretBytes)
.update(signedContent)
.digest('base64')
if (signature === generatedSignature) {
console.log('Good Sig')
} else {
console.log('Bad Sig')
}
For more information on checking the webhook signature and why it’s important please follow this link.
You can also confirm the validity of a webhook from it’s source, events will only come from these addresses:
52.215.16.23954.216.8.7263.33.109.1232a05:d028:17:8000::/52
When you consume a webhook, your response code will be important, any 2xx status code will be treated as a success. Any non 2xx response codes will be treated as a failure and will be reattempted after an exponential backoff.
If all attempts to a specific endpoint fail for a period of 5 days, the endpoint will be disabled. The clock only starts after multiple deliveries have failed within a 24 hour span, with at least 12 hours between the first and the last failure.
Bank accounts
An object representing the bank account details of an employee. Commonly used for payroll. At most one bank account can be created per employee.
GET /api/bank-accounts GET /api/bank-accounts/:id POST /api/bank-accounts PATCH /api/bank-accounts/:idDELETE /api/bank-accounts/:idprivate:readprivate:writeBank account object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
bankNamestring
The name of the bank.
-
nameOnAccountstring
The name on the bank account.
-
accountNumberstring
Bank account number.
-
swiftCodestring
The swift code of the bank account if relevant.
-
sortCodestring
The sort code of the bank account if relevant.
-
routingNumberstring
The routing number of the bank account if relevant.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "Ivl8mvdLO8ux7T1h1DjGtClc",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"bankName": "Mondo",
"nameOnAccount": "Kelsey Wicks",
"accountNumber": "12345678",
"swiftCode": null,
"sortCode": "00-00-00",
"routingNumber": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all bank accounts
Returns a list of bank accounts.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $in
The person to filter queries by.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
bank accounts. The response skips the first $skip results. Each entry is a
separate bank account object. If no bank accounts are available,
data is empty.
GET /api/bank-accountscurl https://app.humaans.io/api/bank-accounts \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "Ivl8mvdLO8ux7T1h1DjGtClc",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"bankName": "Mondo",
"nameOnAccount": "Kelsey Wicks",
"accountNumber": "12345678",
"swiftCode": null,
"sortCode": "00-00-00",
"routingNumber": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a bank account
Retrieves the bank account with the given ID.
Parameters
- No parameters
Returns
Returns a bank account object if a valid identifier was provided.
GET /api/bank-accounts/:idcurl https://app.humaans.io/api/bank-accounts/Ivl8mvdLO8ux7T1h1DjGtClc \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "Ivl8mvdLO8ux7T1h1DjGtClc",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"bankName": "Mondo",
"nameOnAccount": "Kelsey Wicks",
"accountNumber": "12345678",
"swiftCode": null,
"sortCode": "00-00-00",
"routingNumber": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a bank account
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
bankNamestring | null
The name of the bank.
-
nameOnAccountstring | null
The name on the bank account.
-
accountNumberstring | null
Bank account number.
-
swiftCodestring | null
The swift code of the bank account if relevant.
-
sortCodestring | null
The sort code of the bank account if relevant.
-
routingNumberstring | null
The routing number of the bank account if relevant.
Returns
Returns a bank account if the call succeeded. The call returns an error if parameters are invalid.
POST /api/bank-accountscurl https://app.humaans.io/api/bank-accounts \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW"}'
{
"id": "Ivl8mvdLO8ux7T1h1DjGtClc",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"bankName": "Mondo",
"nameOnAccount": "Kelsey Wicks",
"accountNumber": "12345678",
"swiftCode": null,
"sortCode": "00-00-00",
"routingNumber": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a bank account
Parameters
-
bankNamestring | null
The name of the bank.
-
nameOnAccountstring | null
The name on the bank account.
-
accountNumberstring | null
Bank account number.
-
swiftCodestring | null
The swift code of the bank account if relevant.
-
sortCodestring | null
The sort code of the bank account if relevant.
-
routingNumberstring | null
The routing number of the bank account if relevant.
Returns
Returns the bank account if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/bank-accounts/:idcurl https://app.humaans.io/api/bank-accounts/Ivl8mvdLO8ux7T1h1DjGtClc \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"bankName":"N1"}'
{
"id": "Ivl8mvdLO8ux7T1h1DjGtClc",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"bankName": "N1",
"nameOnAccount": "Kelsey Wicks",
"accountNumber": "12345678",
"swiftCode": null,
"sortCode": "00-00-00",
"routingNumber": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a bank account
Permanently deletes a bank account. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/bank-accounts/:idcurl https://app.humaans.io/api/bank-accounts/Ivl8mvdLO8ux7T1h1DjGtClc \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "Ivl8mvdLO8ux7T1h1DjGtClc",
"deleted": true
}Companies
An object representing the company. Every user belongs to a single company and all of the resources accessible via the API are linked to this company (unless stated otherwise, such as public holidays).
GET /api/companies GET /api/companies/:idPATCH /api/companies/:idprivate:readpublic:readprivate:writeCompany object
Attributes
-
idstring
Unique identifier for the object.
-
namestring
Company name.
-
domainsobject[]
The list of domains owned by the company.
-
domains.domainstring
The domain
-
trialEndDatedate
The last date of trial.
-
statusstring
One of
terms,trialing,expired,active,suspended. -
paymentStatusstring
One of
requires_action,past_due,ok. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
isTimesheetEnabledboolean
Describes whether the timesheet functionality is enabled.
-
logoobject
When a logo file is uploaded, it gets resized to several predefined sizes and uploaded to a CDN. The URLs of those files are provided in this object. Note, that you can still access the original un-resized file via
api/files. -
logo.idstring
Unique identifier for the object.
-
logo.filenamestring
-
logo.variantsobject
A map of the predefined logo sizes. Some used in 2x displays, some used in 3x displays.
-
logo.variants.64string
URL of one of the predefined 2x logo sizes.
-
logo.variants.96string
URL of one of the predefined 3x logo sizes.
-
logo.variants.104string
URL of one of the predefined 2x logo sizes.
-
logo.variants.136string
URL of one of the predefined 2x logo sizes.
-
logo.variants.156string
URL of one of the predefined 3x logo sizes.
-
logo.variants.204string
URL of one of the predefined 3x logo sizes.
-
logo.variants.320string
URL of one of the predefined 2x logo sizes.
-
logo.variants.480string
URL of one of the predefined 3x logo sizes.
-
autogenerateEmployeeIdboolean
Whether employee IDs are automatically generated
-
autogenerateEmployeeIdForNewHiresboolean
Whether employee IDs are automatically generated for new hires
-
nextEmployeeIdstring
The employee ID of the next employee to be created.
-
autogenerateEmployeeIdFiltersobject[]
Filters that gate automatic employee ID generation. A person must match all filters to receive a generated ID.
-
autogenerateEmployeeIdFilters.fieldstring
-
autogenerateEmployeeIdFilters.operatorstring
-
autogenerateEmployeeIdFilters.valuestring[]
{
"id": "uoWtfpDIMI2IZ8doGK7kkCwS",
"name": "Acme",
"domains": [],
"trialEndDate": "2020-01-30",
"status": "active",
"paymentStatus": "ok",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"isTimesheetEnabled": true,
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"autogenerateEmployeeIdFilters": [
{}
]
}List all companies
Returns a list of companies.
Parameters
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter companies by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter companies by updated at date.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
companies. The response skips the first $skip results. Each entry is a
separate company object. If no companies are available,
data is empty.
GET /api/companiescurl https://app.humaans.io/api/companies \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "uoWtfpDIMI2IZ8doGK7kkCwS",
"name": "Acme",
"domains": [],
"trialEndDate": "2020-01-30",
"status": "active",
"paymentStatus": "ok",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"isTimesheetEnabled": true,
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"autogenerateEmployeeIdFilters": [
{}
]
}
]
}Retrieve a company
Retrieves the company with the given ID.
Parameters
- No parameters
Returns
Returns a company object if a valid identifier was provided.
GET /api/companies/:idcurl https://app.humaans.io/api/companies/uoWtfpDIMI2IZ8doGK7kkCwS \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "uoWtfpDIMI2IZ8doGK7kkCwS",
"name": "Acme",
"domains": [],
"trialEndDate": "2020-01-30",
"status": "active",
"paymentStatus": "ok",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"isTimesheetEnabled": true,
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"autogenerateEmployeeIdFilters": [
{}
]
}Update a company
Parameters
-
namestring
Company name.
-
isTimesheetEnabledboolean
Describes whether the timesheet functionality is enabled.
-
autogenerateEmployeeIdboolean
Whether employee IDs are automatically generated
-
autogenerateEmployeeIdForNewHiresboolean
Whether employee IDs are automatically generated for new hires
-
nextEmployeeIdstring | null
The employee ID of the next employee to be created.
-
autogenerateEmployeeIdFiltersobject[]
Filters that gate automatic employee ID generation. A person must match all filters to receive a generated ID.
-
autogenerateEmployeeIdFilters.fieldstring required
-
autogenerateEmployeeIdFilters.operatorstring required
-
autogenerateEmployeeIdFilters.valuestring[] required
Returns
Returns the company if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/companies/:idcurl https://app.humaans.io/api/companies/uoWtfpDIMI2IZ8doGK7kkCwS \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"name":"Meac"}'
{
"id": "uoWtfpDIMI2IZ8doGK7kkCwS",
"name": "Meac",
"domains": [],
"trialEndDate": "2020-01-30",
"status": "active",
"paymentStatus": "ok",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"isTimesheetEnabled": true,
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"autogenerateEmployeeIdFilters": [
{}
]
}Compensation types
An object representing a compensation type. Types are the set of compensations that can be given to people. Examples of types are “Salary”, “Bonus”, “Commission” and so on. Custom types can be created in addition to the standard types provided by Humaans.
GET /api/compensation-typesGET /api/compensation-types/:idpublic:readprivate:writeCompensation type object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
namestring
The name of the compensation type.
-
baseTypestring
The base type of the compensation type. One of
salary,bonus,commission,equity,custom -
formulaobject
Used to calculate compensation values for this type. Available for custom types only. It can only be edited if set, but not added or removed.
-
formula.formulastring
The formula expression as plain text.
-
formula.valueTypestring
The output type of the formula. One of
number,percentage,money -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
-
filtersobject[]
Filters restricting who this compensation type can be created for. An empty array means unrestricted. Only custom compensation types can have filters.
-
filters.fieldstring
The field to filter on. Available fields for type
enum:spaceId,payrollProvider,department,contractType,locationId,placeOfWorkCountry,placeOfWorkCity,orgLevel,reportingTo. Available fields for typearray:teams,reportsUpTo. -
filters.operatorstring
The operator to use when filtering. Available operators for field type
string:eq,ne,contains,ncontains,exists,nexists. Available operators for field typeenum:in,nin,exists,nexists. Available operators for field typearray:all,any,nany,nall,exists,nexists. Available operators for field typenumber:eq,ne,gt,gte,lt,lte,exists,nexists. Available operators for field typedate:eq,lt,gt,lte,gte,exists,nexists. Available operators for field typeboolean:eq,exists,nexists. -
filters.value
The value(s) of the field to check
{
"id": "ldOQU3pLI5i8Y9k2rJbrXbFc",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Salary",
"baseType": "salary",
"formula": {
"formula": "salary.amount * 0.05"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"filters": [
{
"field": "department",
"operator": "in",
"value": [
"Engineering"
]
}
]
}List all compensation types
Returns a list of compensation types.
Parameters
-
companyIdstring
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter compensation types by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
compensation types. The response skips the first $skip results. Each entry is a
separate compensation type object. If no compensation types are available,
data is empty.
GET /api/compensation-typescurl https://app.humaans.io/api/compensation-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "ldOQU3pLI5i8Y9k2rJbrXbFc",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Salary",
"baseType": "salary",
"formula": {
"formula": "salary.amount * 0.05"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"filters": [
{
"field": "department",
"operator": "in",
"value": [
"Engineering"
]
}
]
}
]
}Retrieve a compensation type
Retrieves the compensation type with the given ID.
Parameters
- No parameters
Returns
Returns a compensation type object if a valid identifier was provided.
GET /api/compensation-types/:idcurl https://app.humaans.io/api/compensation-types/ldOQU3pLI5i8Y9k2rJbrXbFc \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "ldOQU3pLI5i8Y9k2rJbrXbFc",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Salary",
"baseType": "salary",
"formula": {
"formula": "salary.amount * 0.05"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"filters": [
{
"field": "department",
"operator": "in",
"value": [
"Engineering"
]
}
]
}Compensations
An object representing compensation of an employee.
Compensations come in several types: salary, bonus, commission, equity, and custom.
Employees can have multiple compensations of each type.
Only one compensation of each type with the latest
effectiveDate value that is not in the future is considered
to be currently in effect.
GET /api/compensations GET /api/compensations/:id POST /api/compensations PATCH /api/compensations/:idDELETE /api/compensations/:idcompensations:readcompensations:writeCompensation object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
compensationTypeIdstring
ID of the Compensation type this compensation is related to.
-
amountstring
Compensation amount, can be a number (e.g. 70000 or 8.5), or a percentage (e.g. 12.5%). The fraction should be separated with a dot.
-
currencystring
Currency in 3 letter format (ISO 4217), e.g. EUR, USD, GBP, BTC.
-
periodstring
The period over which this compensation amount is paid. One of annual, biannual, quarterly, monthly, semimonthly, biweekly, weekly, daily, hourly, fixed, sale.
-
notestring
An optional note about this particular compensation entry.
-
effectiveDatedate
The date when this compensation took effect. Can be a past or future date.
-
endDatedate
Compensations of type
bonus,commissionandcustomcan have anendDateto indicate they are no longer in effect. -
endReasonstring
Compensations of type
bonus,commissionandcustomcan have anendDateto indicate they are no longer in effect. In that case, theendReasoncan be used to indicate why the compensation was ended. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time the compensation was deleted. Only present on deleted compensations, which are only returned when querying with
includeDeleted.
{
"id": "m54mmpqDwthFwiiMcY0ptJdz",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"compensationTypeId": "aejf1oD4bZWNtEEnbFwrYGVg",
"amount": "70000",
"currency": "EUR",
"period": "annual",
"note": "Promotion",
"effectiveDate": "2020-02-15",
"endDate": null,
"endReason": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all compensations
Returns a list of compensations.
Parameters
-
compensationTypeIdstring · $eq $ne $in $nin
ID of the Compensation type this compensation is related to.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $in
The person to filter queries by.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter compensations by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$asOfdate
Filter the list of compensations to only one of each type per employee, finding the compensation of each type that was in effect on the provided date. Cannot be combined with
includeDeleted. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
compensations. The response skips the first $skip results. Each entry is a
separate compensation object. If no compensations are available,
data is empty.
GET /api/compensationscurl https://app.humaans.io/api/compensations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "m54mmpqDwthFwiiMcY0ptJdz",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"compensationTypeId": "aejf1oD4bZWNtEEnbFwrYGVg",
"amount": "70000",
"currency": "EUR",
"period": "annual",
"note": "Promotion",
"effectiveDate": "2020-02-15",
"endDate": null,
"endReason": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a compensation
Retrieves the compensation with the given ID.
Parameters
- No parameters
Returns
Returns a compensation object if a valid identifier was provided.
GET /api/compensations/:idcurl https://app.humaans.io/api/compensations/m54mmpqDwthFwiiMcY0ptJdz \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "m54mmpqDwthFwiiMcY0ptJdz",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"compensationTypeId": "aejf1oD4bZWNtEEnbFwrYGVg",
"amount": "70000",
"currency": "EUR",
"period": "annual",
"note": "Promotion",
"effectiveDate": "2020-02-15",
"endDate": null,
"endReason": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a compensation
Any number of compensations can be created per each employee,
but only the compensation with the highest effectiveDate that is not
in the future will be considered as the active compensation of that compensation type.
Note, that to preserve accurate records and history
typically you want to create new compensations instead
of editing existing ones when amounts, periods
or other aspects of the compensation change.
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
compensationTypeIdstring one of type or compensationTypeId required
ID of the Compensation type this compensation is related to.
-
amountstring required
Compensation amount, can be a number (e.g. 70000 or 8.5), or a percentage (e.g. 12.5%). The fraction should be separated with a dot.
-
currencystring | null
Currency in 3 letter format (ISO 4217), e.g. EUR, USD, GBP, BTC.
-
periodstring required
The period over which this compensation amount is paid. One of annual, biannual, quarterly, monthly, semimonthly, biweekly, weekly, daily, hourly, fixed, sale.
-
notestring | null
An optional note about this particular compensation entry.
-
effectiveDatedate required
The date when this compensation took effect. Can be a past or future date.
-
endDatedate | null
Compensations of type
bonus,commissionandcustomcan have anendDateto indicate they are no longer in effect. -
endReasonstring | null
Compensations of type
bonus,commissionandcustomcan have anendDateto indicate they are no longer in effect. In that case, theendReasoncan be used to indicate why the compensation was ended.
Returns
Returns a compensation if the call succeeded. The call returns an error if parameters are invalid.
POST /api/compensationscurl https://app.humaans.io/api/compensations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","amount":"70000","period":"annual","effectiveDate":"2020-02-15","compensationTypeId":"aejf1oD4bZWNtEEnbFwrYGVg"}'
{
"id": "m54mmpqDwthFwiiMcY0ptJdz",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"compensationTypeId": "aejf1oD4bZWNtEEnbFwrYGVg",
"amount": "70000",
"currency": "EUR",
"period": "annual",
"note": "Promotion",
"effectiveDate": "2020-02-15",
"endDate": null,
"endReason": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a compensation
Updates the compensation object. Note, that to preserve accurate records and history typically you want to create new compensations instead of editing existing ones when amounts, periods or other aspects of the compensation change.
Parameters
-
compensationTypeIdstring at most one of type or compensationTypeId
ID of the Compensation type this compensation is related to.
-
amountstring
Compensation amount, can be a number (e.g. 70000 or 8.5), or a percentage (e.g. 12.5%). The fraction should be separated with a dot.
-
currencystring | null
Currency in 3 letter format (ISO 4217), e.g. EUR, USD, GBP, BTC.
-
periodstring
The period over which this compensation amount is paid. One of annual, biannual, quarterly, monthly, semimonthly, biweekly, weekly, daily, hourly, fixed, sale.
-
notestring | null
An optional note about this particular compensation entry.
-
effectiveDatedate
The date when this compensation took effect. Can be a past or future date.
-
endDatedate | null
Compensations of type
bonus,commissionandcustomcan have anendDateto indicate they are no longer in effect. -
endReasonstring | null
Compensations of type
bonus,commissionandcustomcan have anendDateto indicate they are no longer in effect. In that case, theendReasoncan be used to indicate why the compensation was ended.
Returns
Returns the compensation if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/compensations/:idcurl https://app.humaans.io/api/compensations/m54mmpqDwthFwiiMcY0ptJdz \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"amount":"70000"}'
{
"id": "m54mmpqDwthFwiiMcY0ptJdz",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"compensationTypeId": "aejf1oD4bZWNtEEnbFwrYGVg",
"amount": "70000",
"currency": "EUR",
"period": "annual",
"note": "Promotion",
"effectiveDate": "2020-02-15",
"endDate": null,
"endReason": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a compensation
Permanently deletes a compensation. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/compensations/:idcurl https://app.humaans.io/api/compensations/m54mmpqDwthFwiiMcY0ptJdz \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "m54mmpqDwthFwiiMcY0ptJdz",
"deleted": true
}Custom fields
An object representing a custom field and its configuration.
GET /api/custom-fields GET /api/custom-fields/:id POST /api/custom-fields PATCH /api/custom-fields/:idDELETE /api/custom-fields/:idprivate:readprivate:writeCustom field object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
namestring
The name of the custom field.
-
sectionstring
The profile section where the custom field will appear in. One of
basics,health,diversity,banking,equipment,social,employment,jobRole,compensation,offboarding -
resourceIdstring
The ID of the resource this field belongs. This is an ID of a compensation type in the case where
sectioniscompensation -
typestring
Custom field type. One of
text,longText,select,multiSelect,link,date,person. If section isdiversity, this is limited totext,select,multiSelect -
configobject
Extra configuration for the custom field, differs based on the type. For fields of type
textthe options are{ "autocomplete": boolean }, and for fields of typeselectthe options are{ "choices": string[] } -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "ZpbLXlJRpBJQOre5kbFQqYf4",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Payroll code",
"section": "employment",
"resourceId": "s6KZm4xNCvzBlCYeBSSCKDcH",
"type": "text",
"config": {},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all custom fields
Returns a list of custom fields.
Parameters
-
idstring · $eq $ne $in $nin
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
sectionstring · $eq $ne $in $nin
The profile section where the custom field will appear in. One of
basics,health,diversity,banking,equipment,social,employment,jobRole,compensation,offboarding -
typestring · $eq $ne $in $nin
Custom field type. One of
text,longText,select,multiSelect,link,date,person. If section isdiversity, this is limited totext,select,multiSelect -
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
custom fields. The response skips the first $skip results. Each entry is a
separate custom field object. If no custom fields are available,
data is empty.
GET /api/custom-fieldscurl https://app.humaans.io/api/custom-fields \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "ZpbLXlJRpBJQOre5kbFQqYf4",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Payroll code",
"section": "employment",
"resourceId": "s6KZm4xNCvzBlCYeBSSCKDcH",
"type": "text",
"config": {},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a custom field
Retrieves the custom field with the given ID.
Parameters
- No parameters
Returns
Returns a custom field object if a valid identifier was provided.
GET /api/custom-fields/:idcurl https://app.humaans.io/api/custom-fields/ZpbLXlJRpBJQOre5kbFQqYf4 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "ZpbLXlJRpBJQOre5kbFQqYf4",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Payroll code",
"section": "employment",
"resourceId": "s6KZm4xNCvzBlCYeBSSCKDcH",
"type": "text",
"config": {},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a custom field
Parameters
-
namestring required
The name of the custom field.
-
sectionstring required
The profile section where the custom field will appear in. One of
basics,health,diversity,banking,equipment,social,employment,jobRole,compensation,offboarding -
resourceIdstring | null
The ID of the resource this field belongs. This is an ID of a compensation type in the case where
sectioniscompensation -
typestring required
Custom field type. One of
text,longText,select,multiSelect,link,date,person. If section isdiversity, this is limited totext,select,multiSelect -
configobject
Extra configuration for the custom field, differs based on the type. For fields of type
textthe options are{ "autocomplete": boolean }, and for fields of typeselectthe options are{ "choices": string[] }
Returns
Returns a custom field if the call succeeded. The call returns an error if parameters are invalid.
POST /api/custom-fieldscurl https://app.humaans.io/api/custom-fields \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Payroll code","type":"text","section":"employment"}'
{
"id": "ZpbLXlJRpBJQOre5kbFQqYf4",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Payroll code",
"section": "employment",
"resourceId": "s6KZm4xNCvzBlCYeBSSCKDcH",
"type": "text",
"config": {},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a custom field
Parameters
-
namestring
The name of the custom field.
-
configobject
Extra configuration for the custom field, differs based on the type. For fields of type
textthe options are{ "autocomplete": boolean }, and for fields of typeselectthe options are{ "choices": string[] }
Returns
Returns the custom field if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/custom-fields/:idcurl https://app.humaans.io/api/custom-fields/ZpbLXlJRpBJQOre5kbFQqYf4 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"name":"Payroll number"}'
{
"id": "ZpbLXlJRpBJQOre5kbFQqYf4",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Payroll number",
"section": "employment",
"resourceId": "s6KZm4xNCvzBlCYeBSSCKDcH",
"type": "text",
"config": {},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a custom field
Permanently deletes a custom field. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/custom-fields/:idcurl https://app.humaans.io/api/custom-fields/ZpbLXlJRpBJQOre5kbFQqYf4 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "ZpbLXlJRpBJQOre5kbFQqYf4",
"deleted": true
}Custom values
An object representing a custom field value.
GET /api/custom-values GET /api/custom-values/:id POST /api/custom-values PATCH /api/custom-values/:idDELETE /api/custom-values/:idprivate:readprivate:writeCustom value object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
customFieldIdstring
The ID of the custom field this value is for.
-
resourceIdstring
The ID of the resource this field belongs to in case it is a subresource of a person. This is an ID of a Bank account in case
sectionisbanking. It’s an ID of an Equipment in casesectionisequipment. -
valuestring | string[] | null
The value of the custom field.
If
customField.typeistext,longText, orselectthis should be astring.If
customField.typeismultiSelectthis should be an array ofstring.If
customField.typeisdatethis should be astringformatted as adate.If
customField.typeispersonthis shouldperson.id. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "gk1P9Iidto7eh2ygaYD865P2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"customFieldId": "ZzYipWn8ilL2lIxaFLhOeb7d",
"resourceId": "X2O5IvAMDl3a88p7rbOiKImc",
"value": "C8899754",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all custom values
Returns a list of custom values.
Parameters
-
customFieldIdstring · $eq $ne $in $nin
The custom field to filter queries by.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $eq $ne $in $nin
The person to filter queries by.
-
resourceIdstring · $eq $ne $in $nin
The ID of the resource this field belongs to in case it is a subresource of a person. This is an ID of a Bank account in case
sectionisbanking. It’s an ID of an Equipment in casesectionisequipment. -
createdAtdate | date-time · $gt $gte $lt $lte
Filter custom values by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$orobject[]
-
$or.resourceIdstring · $eq $ne $in $nin
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
custom values. The response skips the first $skip results. Each entry is a
separate custom value object. If no custom values are available,
data is empty.
GET /api/custom-valuescurl https://app.humaans.io/api/custom-values \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "gk1P9Iidto7eh2ygaYD865P2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"customFieldId": "ZzYipWn8ilL2lIxaFLhOeb7d",
"resourceId": "X2O5IvAMDl3a88p7rbOiKImc",
"value": "C8899754",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a custom value
Retrieves the custom value with the given ID.
Parameters
- No parameters
Returns
Returns a custom value object if a valid identifier was provided.
GET /api/custom-values/:idcurl https://app.humaans.io/api/custom-values/gk1P9Iidto7eh2ygaYD865P2 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "gk1P9Iidto7eh2ygaYD865P2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"customFieldId": "ZzYipWn8ilL2lIxaFLhOeb7d",
"resourceId": "X2O5IvAMDl3a88p7rbOiKImc",
"value": "C8899754",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a custom value
Parameters
-
valuestring | string[] | null required
The value of the custom field.
If
customField.typeistext,longText, orselectthis should be astring.If
customField.typeismultiSelectthis should be an array ofstring.If
customField.typeisdatethis should be astringformatted as adate.If
customField.typeispersonthis shouldperson.id. -
personIdstring required
ID of the person that this object is associated to.
-
customFieldIdstring required
The ID of the custom field this value is for.
-
resourceIdstring | null
The ID of the resource this field belongs to in case it is a subresource of a person. This is an ID of a Bank account in case
sectionisbanking. It’s an ID of an Equipment in casesectionisequipment.
Returns
Returns a custom value if the call succeeded. The call returns an error if parameters are invalid.
POST /api/custom-valuescurl https://app.humaans.io/api/custom-values \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","customFieldId":"ZzYipWn8ilL2lIxaFLhOeb7d","value":"C8899754"}'
{
"id": "gk1P9Iidto7eh2ygaYD865P2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"customFieldId": "ZzYipWn8ilL2lIxaFLhOeb7d",
"resourceId": "X2O5IvAMDl3a88p7rbOiKImc",
"value": "C8899754",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a custom value
Parameters
-
valuestring | string[] | null
The value of the custom field.
If
customField.typeistext,longText, orselectthis should be astring.If
customField.typeismultiSelectthis should be an array ofstring.If
customField.typeisdatethis should be astringformatted as adate.If
customField.typeispersonthis shouldperson.id.
Returns
Returns the custom value if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/custom-values/:idcurl https://app.humaans.io/api/custom-values/gk1P9Iidto7eh2ygaYD865P2 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"value":"C7864654"}'
{
"id": "gk1P9Iidto7eh2ygaYD865P2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"customFieldId": "ZzYipWn8ilL2lIxaFLhOeb7d",
"resourceId": "X2O5IvAMDl3a88p7rbOiKImc",
"value": "C7864654",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a custom value
Permanently deletes a custom value. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/custom-values/:idcurl https://app.humaans.io/api/custom-values/gk1P9Iidto7eh2ygaYD865P2 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "gk1P9Iidto7eh2ygaYD865P2",
"deleted": true
}Data exports
Data export API can be used to quickly export a large set of data about all of the employees.
GET /api/data-exports/:id POST /api/data-exportsDELETE /api/data-exports/:idpublic:read, private:read, or compensations:read.
Data export object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
urlstring
The URL from which exported data file can be downloaded.
-
dataExportTemplateIdstring
Data export template used for this export
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
filtersobject[]
Filters to control the data included in the export
-
filters.fieldstring
The field to filter on. Available fields for type
enum:spaceId,payrollProvider,department,contractType,locationId,placeOfWorkCountry,placeOfWorkCity,orgLevel,reportingTo. Available fields for typearray:teams,reportsUpTo. -
filters.operatorstring
The operator to use when filtering. Available operators for field type
string:eq,ne,contains,ncontains,exists,nexists. Available operators for field typeenum:in,nin,exists,nexists. Available operators for field typearray:all,any,nany,nall,exists,nexists. Available operators for field typenumber:eq,ne,gt,gte,lt,lte,exists,nexists. Available operators for field typedate:eq,lt,gt,lte,gte,exists,nexists. Available operators for field typeboolean:eq,exists,nexists. -
filters.value
The value(s) of the field to check
{
"id": "yQYtUaI6LeTc1Ss5S0FgInPo",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"url": "/data-exports/dPnhSGDoq9UUR9Bf1BwPPkjC",
"dataExportTemplateId": "pGsUdvAqXqZJWE6krhvceLNa",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"filters": [
{
"field": "department",
"operator": "in",
"value": [
"Engineering",
"Sales"
]
}
]
}Retrieve a data export
Retrieves the data export with the given ID.
Note that this only retrieves the metadata about the data export.
To download the actual data, you need to resolve the url and
download the data from that URL.
Parameters
- No parameters
Returns
Returns a data export object if a valid identifier was provided.
GET /api/data-exports/:idcurl https://app.humaans.io/api/data-exports/yQYtUaI6LeTc1Ss5S0FgInPo \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "yQYtUaI6LeTc1Ss5S0FgInPo",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"url": "/data-exports/dPnhSGDoq9UUR9Bf1BwPPkjC",
"dataExportTemplateId": "pGsUdvAqXqZJWE6krhvceLNa",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"filters": [
{
"field": "department",
"operator": "in",
"value": [
"Engineering",
"Sales"
]
}
]
}Create a data export
Note that once the data export is created the exported
data needs to be downloaded separately. This can be done by resolving
the url field and downloading data from that URL.
Parameters
-
compensationTypesstring[]
The list of compensation type IDs that should be included in the data export.
-
customFieldsstring[]
The list of custom field IDs that should be included in the data export.
-
customIdentifierFieldsstring[]
The list of custom field IDs that should be treated as identifier fields in changes report
-
dataExportTemplateIdstring
Data export template used for this export
-
downloadboolean
By default, the resulting payload of creating an export includes a URL from which exported data file can be downloaded, set this to true to immediately get the generated result in the same request.
-
endDatestring | null
The end date of the data export.
-
fieldsstring[] | null
The list of fields that should be included in the data export. Available fields for export type
people:companyName,firstName,preferredName,preferredNameOrFirstName,middleName,lastName,fullName,pronouns,birthday,shortBirthday,nationality,spokenLanguages,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,countryCode,dietaryPreference,foodAllergies,idExpiryDates,emergencyContacts,timezone,jobTitle,department,manager,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,placeOfWork,fullPlaceOfWork,placeOfWorkCity,placeOfWorkCountry,isRemote,space,payrollProvider,contractType,employeeId,taxId,taxCode,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,bankName,nameOnAccount,accountNumber,swiftCode,sortCode,routingNumber,remoteCountryCode,salary,bonus,equity,commission,paidTimeOff,unpaidLeave,sickLeave,parentalLeave,workingFromHome,otherTimeAway,approvalFlow,allowance,fromPrevAccrualPeriod,fromPrevAccrualPeriodExpired,carriedOver,carriedOverExpired,adjustments,accrued,upcoming,balance,endOfYearBalance,ptoPolicy,social,diversity. Available fields for export typeequipment:firstName,preferredName,middleName,lastName,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,jobTitle,department,manager,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,placeOfWork,fullPlaceOfWork,isRemote,space,payrollProvider,contractType,employeeId,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,type,name,serialNumber,cost,currency,note,attachment,issueDate,receiptDate,collectionDate. Available fields for export typetimeAway:firstName,preferredName,middleName,lastName,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,isTimeOff,jobTitle,department,manager,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,placeOfWork,fullPlaceOfWork,isRemote,space,payrollProvider,contractType,employeeId,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,timeAwayType,startDate,endDate,startPeriod,endPeriod,days,note,registeredOn,requestStatus,reviewer,reviewerEmail,reviewedAt,publicHolidayCalendar,approvalFlow,ptoPolicy. Available fields for export typetimesheet:firstName,preferredName,middleName,lastName,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,jobTitle,department,manager,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,placeOfWork,fullPlaceOfWork,isRemote,space,payrollProvider,contractType,employeeId,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,startDate,endDate,submittedAt,totalTime,totalDays,status,reviewer,reviewerEmail,reviewedAt. Available fields for export typedocument:firstName,preferredName,middleName,lastName,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,jobTitle,department,manager,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,placeOfWork,fullPlaceOfWork,isRemote,space,payrollProvider,contractType,employeeId,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,type,name,issueDate,link,documentLink,uploader,uploaderEmail. Available fields for export typeidentityDocument:firstName,preferredName,middleName,lastName,nationality,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,jobTitle,department,manager,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,placeOfWork,fullPlaceOfWork,isRemote,space,payrollProvider,contractType,employeeId,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,type,number,expiryDate,note,issueCountry,link,verifier,verifierEmail. Available fields for export typechanges:firstName,preferredName,middleName,lastName,pronouns,birthday,shortBirthday,nationality,spokenLanguages,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,dietaryPreference,foodAllergies,idExpiryDates,emergencyContacts,jobTitle,department,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,isRemote,space,placeOfWork,payrollProvider,contractType,employeeId,taxId,taxCode,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,bankName,nameOnAccount,accountNumber,swiftCode,sortCode,routingNumber,social,diversity. Available fields for export typeevents:firstName,preferredName,middleName,lastName,pronouns,birthday,shortBirthday,nationality,spokenLanguages,gender,email,phoneNumber,personalEmail,personalPhoneNumber,fullAddress,country,dietaryPreference,foodAllergies,idExpiryDates,emergencyContacts,jobTitle,department,managerPreferredName,managerEmail,roleEffectiveDate,lastPerformanceRating,teams,fullPlaceOfWork,space,payrollProvider,contractType,employeeId,taxId,taxCode,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,workingDays,workingPattern,fte,unroundedFte,probationEndDate,employmentEndDate,lastWorkingDay,leavingReason,turnoverImpact,leavingNote,event,date,anniversaryLength. -
identifierFieldsstring[]
The list of fields that should be treated as identifier fields in changes report. Available fields:
firstName,preferredName,middleName,lastName,pronouns,birthday,nationality,gender,email,phoneNumber,personalEmail,personalPhoneNumber,country,fullAddress,jobTitle,department,teams,payrollProvider,contractType,employeeId,employeeStatus,employmentStartDate,firstWorkingDay,firstActiveAt,probationEndDate,employmentEndDate,lastWorkingDay. -
includeAdjustmentsboolean
Set to
trueto include time away adjustments. Only applies to exports of typetimeAway -
includeUnsubmittedHoursboolean
Set to
trueto include recorded hours that have not been submitted yet. Only applies to exports of typetimesheet -
includeAllDocumentVersionsboolean
Set to
trueto include all document versions. Only applies to exports of typeidentityDocument -
includeAnniversariesboolean
Set to
trueto include work anniversary events. Only applies to exports of typeevents. Defaults tofalse. -
includeArchivedWorkflowsboolean
Set to
trueto include archived workflow instances. Only applies to exports of typeworkflowActivity -
includeBirthdaysboolean
Set to
trueto include birthday events. Only applies to exports of typeevents. Defaults tofalse. -
includeCompensationHistoryboolean
Set to
trueto include every compensation that was in effect within the filtered date range. This will output multiple rows of data per each employee. -
includeJoinersboolean
Set to
trueto include joiner events. Only applies to exports of typeevents. Defaults tofalse. -
includeLeaversboolean
Set to
trueto include leaver events. Only applies to exports of typeevents. Defaults tofalse. -
includeProbationEndboolean
Set to
trueto include probation end events. Only applies to exports of typeevents. Defaults tofalse. -
includeOffboardedboolean
Set to
trueto include offboarded people in the data export. -
includeNewHiresboolean
-
includeRoleHistoryboolean
Set to
trueto include every job role that was in effect within the filtered date range. This will output multiple rows of data per each employee. -
includeWithoutDocumentsboolean
Set to
trueto include employees without any documents. Only applies to exports of typedocumentoridentityDocument -
includeWithoutEquipmentboolean
Set to
trueto include employees without any equipment. Only applies to exports of typeequipment -
includeWithoutGoalsboolean
Set to
trueto include employees without any goals. Only applies to exports of typegoals -
jsonboolean
Generate the output in JSON format instead of CSV
-
startDatestring | null
The start date of the data export. This is used to include only the people that were active after this date. It is also used when rolling up time away taken totals.
-
timeAwayTypesstring[]
The list of time away type IDs that should be included in the data export.
-
typestring
The type of export, one of
people,equipment,timesheet,timeAway,document,identityDocument,workflowActivity,changes,payroll,requests,goals,events,performance. Default:people. -
filtersobject[]
Filters to control the data included in the export
-
filters.fieldstring required
The field to filter on. Available fields for type
enum:spaceId,payrollProvider,department,contractType,locationId,placeOfWorkCountry,placeOfWorkCity,orgLevel,reportingTo. Available fields for typearray:teams,reportsUpTo. -
filters.operatorstring required
The operator to use when filtering. Available operators for field type
string:eq,ne,contains,ncontains,exists,nexists. Available operators for field typeenum:in,nin,exists,nexists. Available operators for field typearray:all,any,nany,nall,exists,nexists. Available operators for field typenumber:eq,ne,gt,gte,lt,lte,exists,nexists. Available operators for field typedate:eq,lt,gt,lte,gte,exists,nexists. Available operators for field typeboolean:eq,exists,nexists. -
filters.value
The value(s) of the field to check
Returns
Returns a data export if the call succeeded. The call returns an error if parameters are invalid.
POST /api/data-exportscurl https://app.humaans.io/api/data-exports \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"fields":["firstName","lastName","email","jobTitle"]}'
{
"id": "yQYtUaI6LeTc1Ss5S0FgInPo",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"url": "/data-exports/dPnhSGDoq9UUR9Bf1BwPPkjC",
"dataExportTemplateId": "pGsUdvAqXqZJWE6krhvceLNa",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"filters": [
{
"field": "department",
"operator": "in",
"value": [
"Engineering",
"Sales"
]
}
]
}Delete a data export
Permanently deletes a data export. It cannot be undone. Note that data exports expire automatically after a short period of time.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/data-exports/:idcurl https://app.humaans.io/api/data-exports/yQYtUaI6LeTc1Ss5S0FgInPo \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "yQYtUaI6LeTc1Ss5S0FgInPo",
"deleted": true
}Document types
An object representing a type of a document. This resource is used to find out the list of all document types that are in use in the account.
GET /api/document-types POST /api/document-types PATCH /api/document-types/:idDELETE /api/document-types/:iddocuments:readdocuments:writeDocument type object
Attributes
-
idstring
Unique identifier for the object.
-
namestring
The label of the document type. Types are used to organise the documents and to restrict access. Document permissions found in the Admin area can be used to set access level for each document type.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "Ozcv1Wea2yfUhSm8fsj0ziIf",
"name": "Employment agreement",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all document types
Returns a list of document types.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter document types by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
document types. The response skips the first $skip results. Each entry is a
separate document type object. If no document types are available,
data is empty.
GET /api/document-typescurl https://app.humaans.io/api/document-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "Ozcv1Wea2yfUhSm8fsj0ziIf",
"name": "Employment agreement",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Create a document type
Parameters
-
namestring required
The label of the document type. Types are used to organise the documents and to restrict access. Document permissions found in the Admin area can be used to set access level for each document type.
Returns
Returns a document type if the call succeeded. The call returns an error if parameters are invalid.
POST /api/document-typescurl https://app.humaans.io/api/document-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Employment agreement"}'
{
"id": "Ozcv1Wea2yfUhSm8fsj0ziIf",
"name": "Employment agreement",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a document type
Parameters
-
namestring required
The label of the document type. Types are used to organise the documents and to restrict access. Document permissions found in the Admin area can be used to set access level for each document type.
Returns
Returns the document type if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/document-types/:idcurl https://app.humaans.io/api/document-types/Ozcv1Wea2yfUhSm8fsj0ziIf \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"name":"Employment agreement"}'
{
"id": "Ozcv1Wea2yfUhSm8fsj0ziIf",
"name": "Employment agreement",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a document type
Permanently deletes a document type. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/document-types/:idcurl https://app.humaans.io/api/document-types/Ozcv1Wea2yfUhSm8fsj0ziIf \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "Ozcv1Wea2yfUhSm8fsj0ziIf",
"deleted": true
}Documents
An object representing a document that can be attached to an employee or the company.
GET /api/documents GET /api/documents/:id POST /api/documents PATCH /api/documents/:idDELETE /api/documents/:iddocuments:readdocuments:writeDocument object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
namestring
The name of the document
-
documentTypeIdstring
The ID of the document type.
-
linkstring
Documents must have either a link or a file attached.
-
fileIdstring
Documents must have either a link or a file attached.
-
fileobject
A subset of the file object attached to this document. The full file object can be retrieved using the Files endpoint.
-
file.idstring
Unique identifier for the object.
-
file.urlstring
The URL from which the attached file can be downloaded.
-
file.filenamestring
The name of the file attached.
-
sourcestring
The external service from which the document has been imported
-
sourceIdstring
The unique identifier of the document in the remote service
-
issueDatedate
The date when the document was issued.
-
createdBystring
ID of the user who created the document
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "j5nMguwlwQeNYkk9Jie8u1Q2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Employment agreement 2020 (Initial)",
"link": "https://drive.google.com/docs/KMjibfqIQC3hiZK2tFItQetm",
"fileId": null,
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"source": null,
"sourceId": null,
"issueDate": "2020-01-28",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all documents
Returns a list of documents.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $eq $ne $in $nin
ID of the person that this object is associated to. Pass null or no value for company documents only (personId is null). Use personId[$ne]=null for personal docs only, personId[$in][]=id for multiple.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter documents by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$orobject[]
Filter by multiple conditions.
-
$or.personIdstring | empty
Useful for fetching personal documents for a single person and company wide documents at the same time. E.g.
GET /api/documents?$or[0][personId]=j5nMguwlw&$or[1][personId]= -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
documents. The response skips the first $skip results. Each entry is a
separate document object. If no documents are available,
data is empty.
GET /api/documentscurl https://app.humaans.io/api/documents \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "j5nMguwlwQeNYkk9Jie8u1Q2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Employment agreement 2020 (Initial)",
"link": "https://drive.google.com/docs/KMjibfqIQC3hiZK2tFItQetm",
"fileId": null,
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"source": null,
"sourceId": null,
"issueDate": "2020-01-28",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a document
Retrieves the document with the given ID.
Parameters
- No parameters
Returns
Returns a document object if a valid identifier was provided.
GET /api/documents/:idcurl https://app.humaans.io/api/documents/j5nMguwlwQeNYkk9Jie8u1Q2 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "j5nMguwlwQeNYkk9Jie8u1Q2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Employment agreement 2020 (Initial)",
"link": "https://drive.google.com/docs/KMjibfqIQC3hiZK2tFItQetm",
"fileId": null,
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"source": null,
"sourceId": null,
"issueDate": "2020-01-28",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a document
Parameters
-
personIdstring | null
ID of the person that this object is associated to.
-
namestring required
The name of the document
-
documentTypeIdstring | null
The ID of the document type.
-
linkstring | null one of link or fileId required
Documents must have either a link or a file attached.
-
fileIdstring | null one of link or fileId required
Documents must have either a link or a file attached.
-
issueDatedate
The date when the document was issued.
-
typestring
The document type.
Returns
Returns a document if the call succeeded. The call returns an error if parameters are invalid.
POST /api/documentscurl https://app.humaans.io/api/documents \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Employment agreement 2020 (Initial)","link":"https://drive.google.com/docs/KMjibfqIQC3hiZK2tFItQetm"}'
{
"id": "j5nMguwlwQeNYkk9Jie8u1Q2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Employment agreement 2020 (Initial)",
"link": "https://drive.google.com/docs/KMjibfqIQC3hiZK2tFItQetm",
"fileId": null,
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"source": null,
"sourceId": null,
"issueDate": "2020-01-28",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a document
Parameters
-
namestring
The name of the document
-
documentTypeIdstring | null
The ID of the document type.
-
issueDatedate
The date when the document was issued.
-
typestring
The document type.
Returns
Returns the document if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/documents/:idcurl https://app.humaans.io/api/documents/j5nMguwlwQeNYkk9Jie8u1Q2 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"link":"https://intranet/doc/2"}'
{
"id": "j5nMguwlwQeNYkk9Jie8u1Q2",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Employment agreement 2020 (Initial)",
"link": "https://intranet/doc/2",
"fileId": null,
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"source": null,
"sourceId": null,
"issueDate": "2020-01-28",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a document
Permanently deletes a document. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/documents/:idcurl https://app.humaans.io/api/documents/j5nMguwlwQeNYkk9Jie8u1Q2 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "j5nMguwlwQeNYkk9Jie8u1Q2",
"deleted": true
}Emergency contacts
An object representing an emergency contact of an employee. Up to 2 emergency contacts can be created per employee. One of them must be marked as primary.
GET /api/emergency-contacts GET /api/emergency-contacts/:id POST /api/emergency-contacts PATCH /api/emergency-contacts/:idDELETE /api/emergency-contacts/:idprivate:readprivate:writeEmergency contact object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
namestring
The name of the emergency contact.
-
emailstring
The email of the emergency contact.
-
phoneNumberstring
The phone number of the emergency contact.
-
formattedPhoneNumberstring
This holds the value of the phoneNumber field but formatted for display.
-
relationshipstring
The relationship of the emergency contact to the employee.
-
isPrimaryboolean
Indicates the primary emergency contact. Only one emergency can be primary.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "QmzB8xCTAG7IIHcsM1DKdpZe",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Sean Reese",
"email": "sean@example.com",
"phoneNumber": "+4479460000",
"formattedPhoneNumber": "+44 7946 0000",
"relationship": "Partner ❤️",
"isPrimary": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all emergency contacts
Returns a list of emergency contacts.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
isPrimaryboolean
Indicates the primary emergency contact. Only one emergency can be primary.
-
personIdstring · $in
The person to filter queries by.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
emergency contacts. The response skips the first $skip results. Each entry is a
separate emergency contact object. If no emergency contacts are available,
data is empty.
GET /api/emergency-contactscurl https://app.humaans.io/api/emergency-contacts \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "QmzB8xCTAG7IIHcsM1DKdpZe",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Sean Reese",
"email": "sean@example.com",
"phoneNumber": "+4479460000",
"formattedPhoneNumber": "+44 7946 0000",
"relationship": "Partner ❤️",
"isPrimary": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve an emergency contact
Retrieves the emergency contact with the given ID.
Parameters
- No parameters
Returns
Returns an emergency contact object if a valid identifier was provided.
GET /api/emergency-contacts/:idcurl https://app.humaans.io/api/emergency-contacts/QmzB8xCTAG7IIHcsM1DKdpZe \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "QmzB8xCTAG7IIHcsM1DKdpZe",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Sean Reese",
"email": "sean@example.com",
"phoneNumber": "+4479460000",
"formattedPhoneNumber": "+44 7946 0000",
"relationship": "Partner ❤️",
"isPrimary": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create an emergency contact
Parameters
-
namestring | null
The name of the emergency contact.
-
emailstring | null
The email of the emergency contact.
-
phoneNumberstring | null
The phone number of the emergency contact.
-
relationshipstring | null
The relationship of the emergency contact to the employee.
-
personIdstring required
ID of the person that this object is associated to.
-
isPrimaryboolean required
Indicates the primary emergency contact. Only one emergency can be primary.
Returns
Returns an emergency contact if the call succeeded. The call returns an error if parameters are invalid.
POST /api/emergency-contactscurl https://app.humaans.io/api/emergency-contacts \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","isPrimary":true}'
{
"id": "QmzB8xCTAG7IIHcsM1DKdpZe",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Sean Reese",
"email": "sean@example.com",
"phoneNumber": "+4479460000",
"formattedPhoneNumber": "+44 7946 0000",
"relationship": "Partner ❤️",
"isPrimary": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update an emergency contact
Parameters
-
namestring | null
The name of the emergency contact.
-
emailstring | null
The email of the emergency contact.
-
phoneNumberstring | null
The phone number of the emergency contact.
-
relationshipstring | null
The relationship of the emergency contact to the employee.
Returns
Returns the emergency contact if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/emergency-contacts/:idcurl https://app.humaans.io/api/emergency-contacts/QmzB8xCTAG7IIHcsM1DKdpZe \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"email":"sean.reese@example.com"}'
{
"id": "QmzB8xCTAG7IIHcsM1DKdpZe",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"name": "Sean Reese",
"email": "sean.reese@example.com",
"phoneNumber": "+4479460000",
"formattedPhoneNumber": "+44 7946 0000",
"relationship": "Partner ❤️",
"isPrimary": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete an emergency contact
Permanently deletes an emergency contact. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/emergency-contacts/:idcurl https://app.humaans.io/api/emergency-contacts/QmzB8xCTAG7IIHcsM1DKdpZe \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "QmzB8xCTAG7IIHcsM1DKdpZe",
"deleted": true
}Equipment
An object representing a piece of equipment issued to an employee. It can be used for things like company issued laptops, screens, other accessories, key cards, chairs and so on.
GET /api/equipment GET /api/equipment/:id POST /api/equipment PATCH /api/equipment/:idDELETE /api/equipment/:idprivate:readprivate:writeEquipment object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
typestring
The type of the equipment.
-
namestring
The name / model on the equipment.
-
serialNumberstring
The serial number.
-
coststring
Cost, the fraction should be separated with a dot.
-
currencystring
Currency in 3 letter format (ISO 4217), e.g. EUR, USD, GBP, BTC.
-
notestring
Any additional notes.
-
fileIdstring
A file attachment.
-
fileobject
A subset of the file object attached to this document. The full file object can be retrieved using the Files endpoint.
-
file.idstring
Unique identifier for the object.
-
file.urlstring
The URL from which the attached file can be downloaded.
-
file.filenamestring
The name of the file attached.
-
issueDatedate
The date when the equipment was issued.
-
receiptDatedate
The date when the equipment was received by the employee, if different from issue date.
-
collectionDatedate
The date when the equipment was collected from the employee.
-
collectedBystring
The person that marked the equipment as collected.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "W1Uisa336KrC6Rt55pEBkTNZ",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Laptop",
"name": "MacBook Pro (13-inch, 2017)",
"serialNumber": "C012345678",
"cost": "1299",
"currency": "EUR",
"note": "Refurbished.",
"fileId": null,
"file": null,
"issueDate": "2020-01-28",
"receiptDate": "2020-01-28",
"collectionDate": null,
"collectedBy": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all equipment
Returns a list of equipment.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring
The person to filter queries by.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
equipment. The response skips the first $skip results. Each entry is a
separate equipment object. If no equipment are available,
data is empty.
GET /api/equipmentcurl https://app.humaans.io/api/equipment \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "W1Uisa336KrC6Rt55pEBkTNZ",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Laptop",
"name": "MacBook Pro (13-inch, 2017)",
"serialNumber": "C012345678",
"cost": "1299",
"currency": "EUR",
"note": "Refurbished.",
"fileId": null,
"file": null,
"issueDate": "2020-01-28",
"receiptDate": "2020-01-28",
"collectionDate": null,
"collectedBy": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve an equipment
Retrieves the equipment with the given ID.
Parameters
- No parameters
Returns
Returns an equipment object if a valid identifier was provided.
GET /api/equipment/:idcurl https://app.humaans.io/api/equipment/W1Uisa336KrC6Rt55pEBkTNZ \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "W1Uisa336KrC6Rt55pEBkTNZ",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Laptop",
"name": "MacBook Pro (13-inch, 2017)",
"serialNumber": "C012345678",
"cost": "1299",
"currency": "EUR",
"note": "Refurbished.",
"fileId": null,
"file": null,
"issueDate": "2020-01-28",
"receiptDate": "2020-01-28",
"collectionDate": null,
"collectedBy": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create an equipment
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
typestring required
The type of the equipment.
-
namestring required
The name / model on the equipment.
-
serialNumberstring | null
The serial number.
-
coststring | null
Cost, the fraction should be separated with a dot.
-
currencystring | null
Currency in 3 letter format (ISO 4217), e.g. EUR, USD, GBP, BTC.
-
notestring | null
Any additional notes.
-
fileIdstring | null
A file attachment.
-
issueDatedate required
The date when the equipment was issued.
-
receiptDatedate | null
The date when the equipment was received by the employee, if different from issue date.
-
collectionDatedate | null
The date when the equipment was collected from the employee.
Returns
Returns an equipment if the call succeeded. The call returns an error if parameters are invalid.
POST /api/equipmentcurl https://app.humaans.io/api/equipment \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","type":"Laptop","name":"MacBook Pro (13-inch, 2017)","issueDate":"2020-01-28"}'
{
"id": "W1Uisa336KrC6Rt55pEBkTNZ",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Laptop",
"name": "MacBook Pro (13-inch, 2017)",
"serialNumber": "C012345678",
"cost": "1299",
"currency": "EUR",
"note": "Refurbished.",
"fileId": null,
"file": null,
"issueDate": "2020-01-28",
"receiptDate": "2020-01-28",
"collectionDate": null,
"collectedBy": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update an equipment
Parameters
-
typestring
The type of the equipment.
-
namestring
The name / model on the equipment.
-
serialNumberstring | null
The serial number.
-
coststring | null
Cost, the fraction should be separated with a dot.
-
currencystring | null
Currency in 3 letter format (ISO 4217), e.g. EUR, USD, GBP, BTC.
-
notestring | null
Any additional notes.
-
fileIdstring | null
A file attachment.
-
issueDatedate
The date when the equipment was issued.
-
receiptDatedate | null
The date when the equipment was received by the employee, if different from issue date.
-
collectionDatedate | null
The date when the equipment was collected from the employee.
Returns
Returns the equipment if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/equipment/:idcurl https://app.humaans.io/api/equipment/W1Uisa336KrC6Rt55pEBkTNZ \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"name":"MacBook Pro (13-inch, 2020)"}'
{
"id": "W1Uisa336KrC6Rt55pEBkTNZ",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Laptop",
"name": "MacBook Pro (13-inch, 2020)",
"serialNumber": "C012345678",
"cost": "1299",
"currency": "EUR",
"note": "Refurbished.",
"fileId": null,
"file": null,
"issueDate": "2020-01-28",
"receiptDate": "2020-01-28",
"collectionDate": null,
"collectedBy": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete an equipment
Permanently deletes an equipment. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/equipment/:idcurl https://app.humaans.io/api/equipment/W1Uisa336KrC6Rt55pEBkTNZ \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "W1Uisa336KrC6Rt55pEBkTNZ",
"deleted": true
}Equipment names
An object representing a name of some equipment. This resource is used to find out the list of all equipment names that are in use in the account.
GET /api/equipment-namesprivate:readEquipment name object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
valuestring
The label of the equipment name.
-
isDefaultboolean
Whether this name is the default name provided by Humaans.
-
isUsedboolean
Whether this name is used for some equipment.
{
"id": "j9541EU55Ru2fJ50WGWjPkod",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"value": "Laptop",
"isDefault": true,
"isUsed": true
}List all equipment names
Returns a list of equipment names.
Parameters
-
typestring
Filter the equipment names by equipment type.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
equipment names. The response skips the first $skip results. Each entry is a
separate equipment name object. If no equipment names are available,
data is empty.
GET /api/equipment-namescurl https://app.humaans.io/api/equipment-names \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "j9541EU55Ru2fJ50WGWjPkod",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"value": "Laptop",
"isDefault": true,
"isUsed": true
}
]
}Equipment types
An object representing a type of equipment. This resource is used to find out the list of all equipment types that are in use in the account.
GET /api/equipment-typesprivate:readEquipment type object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
valuestring
The label of the equipment type.
-
isDefaultboolean
Whether this type is the default type provided by Humaans.
-
isUsedboolean
Whether this type is used for some equipment.
{
"id": "mK6SIWfNdZWb4x9dRmTYtn7g",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"value": "Laptop",
"isDefault": true,
"isUsed": true
}List all equipment types
Returns a list of equipment types.
Parameters
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
equipment types. The response skips the first $skip results. Each entry is a
separate equipment type object. If no equipment types are available,
data is empty.
GET /api/equipment-typescurl https://app.humaans.io/api/equipment-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "mK6SIWfNdZWb4x9dRmTYtn7g",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"value": "Laptop",
"isDefault": true,
"isUsed": true
}
]
}Files
An object representing a file uploaded to Humaans. The files API is used for uploading profile photos as well as files that are attached to identity documents, documents and offboarded people.
GET /api/files/:idPOST /api/filestype
attribute of the file.
File object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
personIdstring
ID of the person that this object is associated to. Set to the ID of the person that this file will be attached to. Set to
nullif it’s a company widedocument. -
typestring
The type of resource that uses the file. For uploads through the public API, use one of
profilePhoto,document,identityDocument,equipmentFile,leavingFile. -
uploadedBystring
The ID of the person who uploaded this file.
-
filenamestring
The original filename of the uploaded file.
-
urlstring
The URL from which the file can be downloaded. Note, the
api/filesis only used for creating the files and retrieving their metadata. Use this URL to retrieve the actual uploaded file. -
isPublicboolean
Can the original file be accessed without authentication.
-
variantsobject
When a photo file is uploaded, it gets resized to several predefined sizes and uploaded to a CDN. The URLs of those files are provided in this object. Note, that you can still access the original unresized file via the
api/files. See the Person object for an example. -
variants.64string
URL of one of the predefined 2x photo sizes.
-
variants.96string
URL of one of the predefined 3x photo sizes.
-
variants.104string
URL of one of the predefined 2x photo sizes.
-
variants.136string
URL of one of the predefined 2x photo sizes.
-
variants.156string
URL of one of the predefined 3x photo sizes.
-
variants.204string
URL of one of the predefined 3x photo sizes.
-
variants.320string
URL of one of the predefined 2x photo sizes.
-
variants.480string
URL of one of the predefined 3x photo sizes.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "UJx97ZPPgz2EncFbxXIQkxEq",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "document",
"uploadedBy": "AfcpS6HbVjoXdMLZ6aF4Sfad",
"filename": "employment-agreement-kw-2020.pdf",
"url": "https://app.humaans.io/file/UJx97ZPPgz2EncFbxXIQkxEq",
"isPublic": false,
"variants": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Retrieve a file
Retrieves the file with the given ID.
Parameters
- No parameters
Returns
Returns a file object if a valid identifier was provided.
GET /api/files/:idcurl https://app.humaans.io/api/files/UJx97ZPPgz2EncFbxXIQkxEq \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "UJx97ZPPgz2EncFbxXIQkxEq",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "document",
"uploadedBy": "AfcpS6HbVjoXdMLZ6aF4Sfad",
"filename": "employment-agreement-kw-2020.pdf",
"url": "https://app.humaans.io/file/UJx97ZPPgz2EncFbxXIQkxEq",
"isPublic": false,
"variants": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a file
The file create API must be used as
a multipart form data instead of content type JSON
in order to upload the files. Once the file is uploaded,
it is typically then attached to the target object, such as
person’s profilePhotoId field, document’s fileId field
and so on. Files that are not attached to any resource get
periodically deleted.
Parameters
-
personIdstring | null
ID of the person that this object is associated to. Set to the ID of the person that this file will be attached to. Set to
nullif it’s a company widedocument. -
typestring required
The type of resource that uses the file. For uploads through the public API, use one of
profilePhoto,document,identityDocument,equipmentFile,leavingFile. -
isPublicboolean
Can the original file be accessed without authentication.
Returns
Returns a file if the call succeeded. The call returns an error if parameters are invalid.
POST /api/filescurl https://app.humaans.io/api/files \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X POST \
-F personId=NF28Pg0RN4xdDjZcocDiL9lz \
-F type=document \
-F @employment-agreement.pdf
{
"id": "UJx97ZPPgz2EncFbxXIQkxEq",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "document",
"uploadedBy": "AfcpS6HbVjoXdMLZ6aF4Sfad",
"filename": "employment-agreement-kw-2020.pdf",
"url": "https://app.humaans.io/file/UJx97ZPPgz2EncFbxXIQkxEq",
"isPublic": false,
"variants": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Identity document types
An object representing a type of an identity document. This resource is used to find out the list of all identity types that are in use in the account.
GET /api/identity-document-typesdocuments:readIdentity document type object
Attributes
-
idstring
Unique identifier for the object.
-
valuestring
The label of the identity document type.
{
"id": "yI3rZlTcWBvn3F4ChC5d1X2b",
"value": "Passport"
}List all identity document types
Returns a list of identity document types.
Parameters
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
identity document types. The response skips the first $skip results. Each entry is a
separate identity document type object. If no identity document types are available,
data is empty.
GET /api/identity-document-typescurl https://app.humaans.io/api/identity-document-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "yI3rZlTcWBvn3F4ChC5d1X2b",
"value": "Passport"
}
]
}Identity documents
An object representing an identity (or identification) document of an employee.
GET /api/identity-documents GET /api/identity-documents/:id POST /api/identity-documents PATCH /api/identity-documents/:idDELETE /api/identity-documents/:iddocuments:readdocuments:writeIdentity document object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
typestring
A type of the identity document. Typically set to
Passport,Driving License,PassportorVisa, but can be set to any value. -
numberstring
The number of the identification document as specified on the document.
-
countryCodestring
Country of issue code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
expiryDatedate
Expiry date of the document.
-
notestring
An optional note about the identity document.
-
fileIdstring
The ID of the file attached to this identity document.
-
fileobject
A subset of the file object attached to this identity document. The full file object can be retrieved using the Files endpoint.
-
file.idstring
Unique identifier for the object.
-
file.urlstring
The URL from which the attached file can be downloaded.
-
file.filenamestring
The name of the file attached.
-
verifiedBystring
The ID of the person that varified the legitimacy of this identity document.
-
verifiedAtdate-time
The date and time when this this identity document was verified.
-
isVerifiedboolean
The flag indicating that the document has been verified. This can be useful for non admin users, since non admin users do not see who verified the document.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "a0M0OIrmNIQe7UP5AaPxv9jN",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Passport",
"number": "12345678",
"countryCode": "GB",
"expiryDate": "2050-06-24",
"note": null,
"fileId": "51YzMOYrc9rU0lNGn1QtgSv0",
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"verifiedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"verifiedAt": "ob4xPcVpGGZm043C7xGMfP1U",
"isVerified": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all identity documents
Returns a list of identity documents.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $eq $ne $in $nin
The person to filter queries by.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter identity documents by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
identity documents. The response skips the first $skip results. Each entry is a
separate identity document object. If no identity documents are available,
data is empty.
GET /api/identity-documentscurl https://app.humaans.io/api/identity-documents \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "a0M0OIrmNIQe7UP5AaPxv9jN",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Passport",
"number": "12345678",
"countryCode": "GB",
"expiryDate": "2050-06-24",
"note": null,
"fileId": "51YzMOYrc9rU0lNGn1QtgSv0",
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"verifiedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"verifiedAt": "ob4xPcVpGGZm043C7xGMfP1U",
"isVerified": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve an identity document
Retrieves the identity document with the given ID.
Parameters
- No parameters
Returns
Returns an identity document object if a valid identifier was provided.
GET /api/identity-documents/:idcurl https://app.humaans.io/api/identity-documents/a0M0OIrmNIQe7UP5AaPxv9jN \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "a0M0OIrmNIQe7UP5AaPxv9jN",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Passport",
"number": "12345678",
"countryCode": "GB",
"expiryDate": "2050-06-24",
"note": null,
"fileId": "51YzMOYrc9rU0lNGn1QtgSv0",
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"verifiedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"verifiedAt": "ob4xPcVpGGZm043C7xGMfP1U",
"isVerified": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create an identity document
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
typestring required
A type of the identity document. Typically set to
Passport,Driving License,PassportorVisa, but can be set to any value. -
numberstring | null
The number of the identification document as specified on the document.
-
countryCodestring | null
Country of issue code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
expiryDatedate | null
Expiry date of the document.
-
notestring | null
An optional note about the identity document.
-
fileIdstring required
The ID of the file attached to this identity document.
-
verifiedBystring | null
The ID of the person that varified the legitimacy of this identity document.
Returns
Returns an identity document if the call succeeded. The call returns an error if parameters are invalid.
POST /api/identity-documentscurl https://app.humaans.io/api/identity-documents \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","type":"Passport","fileId":"51YzMOYrc9rU0lNGn1QtgSv0"}'
{
"id": "a0M0OIrmNIQe7UP5AaPxv9jN",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Passport",
"number": "12345678",
"countryCode": "GB",
"expiryDate": "2050-06-24",
"note": null,
"fileId": "51YzMOYrc9rU0lNGn1QtgSv0",
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"verifiedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"verifiedAt": "ob4xPcVpGGZm043C7xGMfP1U",
"isVerified": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update an identity document
Parameters
-
typestring
A type of the identity document. Typically set to
Passport,Driving License,PassportorVisa, but can be set to any value. -
numberstring | null
The number of the identification document as specified on the document.
-
countryCodestring | null
Country of issue code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
expiryDatedate | null
Expiry date of the document.
-
notestring | null
An optional note about the identity document.
-
fileIdstring
The ID of the file attached to this identity document.
-
verifiedBystring | null
The ID of the person that varified the legitimacy of this identity document.
Returns
Returns the identity document if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/identity-documents/:idcurl https://app.humaans.io/api/identity-documents/a0M0OIrmNIQe7UP5AaPxv9jN \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"expiryDate":"2050-05-01"}'
{
"id": "a0M0OIrmNIQe7UP5AaPxv9jN",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "Passport",
"number": "12345678",
"countryCode": "GB",
"expiryDate": "2050-05-01",
"note": null,
"fileId": "51YzMOYrc9rU0lNGn1QtgSv0",
"file": {
"id": "51YzMOYrc9rU0lNGn1QtgSv0",
"url": "https://app.humaans.io/files/51YzMOYrc9rU0lNGn1QtgSv0",
"filename": "passport-scan.pdf"
},
"verifiedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"verifiedAt": "ob4xPcVpGGZm043C7xGMfP1U",
"isVerified": true,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete an identity document
Permanently deletes an identity document. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/identity-documents/:idcurl https://app.humaans.io/api/identity-documents/a0M0OIrmNIQe7UP5AaPxv9jN \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "a0M0OIrmNIQe7UP5AaPxv9jN",
"deleted": true
}Job library levels
A job library level is a seniority or rank within a career track, for example “Senior”. Levels in different tracks that share the same grade are considered equivalent. Levels are combined with roles to form job library profiles.
GET /api/job-library-levels GET /api/job-library-levels/:id POST /api/job-library-levels PATCH /api/job-library-levels/:idDELETE /api/job-library-levels/:idjobLibrary:readjobLibrary:writeJob library level object
Attributes
-
idstring
Unique identifier for the object.
-
trackstring
The career track this level belongs to, e.g. “Professional”.
-
namestring
The name of the level, e.g. “Senior”.
-
codestring
A short code for the level, e.g. “L5” or “M3”.
-
gradeinteger
A company-wide grade shared across tracks. Levels in different tracks with the same
gradeare considered equivalent (e.g. “M1” and “L3”). -
statusstring
Whether the level is
activeorarchived. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time the level was deleted. Only present on deleted levels, which are only returned when querying with
includeDeleted.
{
"id": "y03tuSYgIN4v9R3eNQCrw31i",
"track": "Professional",
"name": "Senior",
"code": "L5",
"grade": 5,
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}List all job library levels
Returns a list of job library levels.
Parameters
-
idstring · $in
The ID of the level.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
statusstring
Filter levels by status.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter levels by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$selectstring[]
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
job library levels. The response skips the first $skip results. Each entry is a
separate job library level object. If no job library levels are available,
data is empty.
GET /api/job-library-levelscurl https://app.humaans.io/api/job-library-levels \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "y03tuSYgIN4v9R3eNQCrw31i",
"track": "Professional",
"name": "Senior",
"code": "L5",
"grade": 5,
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}
]
}Retrieve a job library level
Retrieves the job library level with the given ID.
Parameters
- No parameters
Returns
Returns a job library level object if a valid identifier was provided.
GET /api/job-library-levels/:idcurl https://app.humaans.io/api/job-library-levels/y03tuSYgIN4v9R3eNQCrw31i \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "y03tuSYgIN4v9R3eNQCrw31i",
"track": "Professional",
"name": "Senior",
"code": "L5",
"grade": 5,
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Create a job library level
Parameters
-
trackstring required
The career track this level belongs to, e.g. “Professional”.
-
namestring required
The name of the level, e.g. “Senior”.
-
codestring | null
A short code for the level, e.g. “L5” or “M3”.
-
gradeinteger required
A company-wide grade shared across tracks. Levels in different tracks with the same
gradeare considered equivalent (e.g. “M1” and “L3”). -
statusstring
Whether the level is
activeorarchived.
Returns
Returns a job library level if the call succeeded. The call returns an error if parameters are invalid.
POST /api/job-library-levelscurl https://app.humaans.io/api/job-library-levels \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"track":"Professional","name":"Senior","grade":5}'
{
"id": "y03tuSYgIN4v9R3eNQCrw31i",
"track": "Professional",
"name": "Senior",
"code": "L5",
"grade": 5,
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Update a job library level
Parameters
-
trackstring
The career track this level belongs to, e.g. “Professional”.
-
namestring
The name of the level, e.g. “Senior”.
-
codestring | null
A short code for the level, e.g. “L5” or “M3”.
-
gradeinteger
A company-wide grade shared across tracks. Levels in different tracks with the same
gradeare considered equivalent (e.g. “M1” and “L3”). -
statusstring
Whether the level is
activeorarchived.
Returns
Returns the job library level if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/job-library-levels/:idcurl https://app.humaans.io/api/job-library-levels/y03tuSYgIN4v9R3eNQCrw31i \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "y03tuSYgIN4v9R3eNQCrw31i",
"track": "Professional",
"name": "Senior",
"code": "L5",
"grade": 5,
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Delete a job library level
Permanently deletes a job library level. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/job-library-levels/:idcurl https://app.humaans.io/api/job-library-levels/y03tuSYgIN4v9R3eNQCrw31i \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "y03tuSYgIN4v9R3eNQCrw31i",
"deleted": true
}Job library profiles
A job library profile joins one job library role and one job library level into an assignable job profile, for example “Senior Software Engineer”. A profile can be linked to a person via the jobLibraryProfileId field on their job role.
GET /api/job-library-profiles GET /api/job-library-profiles/:id POST /api/job-library-profiles PATCH /api/job-library-profiles/:idDELETE /api/job-library-profiles/:idjobLibrary:readjobLibrary:writeJob library profile object
Attributes
-
idstring
Unique identifier for the object.
-
jobLibraryRoleIdstring
The job library role this profile is based on.
-
jobLibraryLevelIdstring
The job library level this profile is based on.
-
codestring
Stable profile code.
-
jobTitlestring
Main display title shown in the directory.
-
externalTitlestring
Public/recruiting title.
-
descriptionstring
Optional profile description.
-
statusstring
Current status of the job profile.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time the profile was deleted. Only present on deleted profiles, which are only returned when querying with
includeDeleted.
{
"id": "QQX6J5Mu8wgmBjlDH6FLqnX0",
"jobLibraryRoleId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"jobLibraryLevelId": "Kx2mR8nQvT5wY7bH3cF6dJ9p",
"code": "SSE",
"jobTitle": "Senior Software Engineer",
"externalTitle": "Senior Software Engineer",
"description": "Designs and builds core product features end to end.",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}List all job library profiles
Returns a list of job library profiles.
Parameters
-
idstring · $in
The ID of the profile.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
jobLibraryLevelIdstring
The job library level this profile is based on.
-
jobLibraryRoleIdstring
The job library role this profile is based on.
-
statusstring
Current status of the job profile.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter profiles by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$selectstring[]
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
job library profiles. The response skips the first $skip results. Each entry is a
separate job library profile object. If no job library profiles are available,
data is empty.
GET /api/job-library-profilescurl https://app.humaans.io/api/job-library-profiles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "QQX6J5Mu8wgmBjlDH6FLqnX0",
"jobLibraryRoleId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"jobLibraryLevelId": "Kx2mR8nQvT5wY7bH3cF6dJ9p",
"code": "SSE",
"jobTitle": "Senior Software Engineer",
"externalTitle": "Senior Software Engineer",
"description": "Designs and builds core product features end to end.",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}
]
}Retrieve a job library profile
Retrieves the job library profile with the given ID.
Parameters
- No parameters
Returns
Returns a job library profile object if a valid identifier was provided.
GET /api/job-library-profiles/:idcurl https://app.humaans.io/api/job-library-profiles/QQX6J5Mu8wgmBjlDH6FLqnX0 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "QQX6J5Mu8wgmBjlDH6FLqnX0",
"jobLibraryRoleId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"jobLibraryLevelId": "Kx2mR8nQvT5wY7bH3cF6dJ9p",
"code": "SSE",
"jobTitle": "Senior Software Engineer",
"externalTitle": "Senior Software Engineer",
"description": "Designs and builds core product features end to end.",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Create a job library profile
Parameters
-
jobLibraryRoleIdstring required
The job library role this profile is based on.
-
jobLibraryLevelIdstring required
The job library level this profile is based on.
-
codestring required
Stable profile code.
-
jobTitlestring required
Main display title shown in the directory.
-
externalTitlestring | null
Public/recruiting title.
-
descriptionstring | null
Optional profile description.
-
statusstring
Current status of the job profile.
Returns
Returns a job library profile if the call succeeded. The call returns an error if parameters are invalid.
POST /api/job-library-profilescurl https://app.humaans.io/api/job-library-profiles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"jobLibraryRoleId":"6iJcJ6aKIj1H4ubC4Zp0LlT6","jobLibraryLevelId":"Kx2mR8nQvT5wY7bH3cF6dJ9p","code":"SSE","jobTitle":"Senior Software Engineer"}'
{
"id": "QQX6J5Mu8wgmBjlDH6FLqnX0",
"jobLibraryRoleId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"jobLibraryLevelId": "Kx2mR8nQvT5wY7bH3cF6dJ9p",
"code": "SSE",
"jobTitle": "Senior Software Engineer",
"externalTitle": "Senior Software Engineer",
"description": "Designs and builds core product features end to end.",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Update a job library profile
Parameters
-
jobLibraryRoleIdstring
The job library role this profile is based on.
-
jobLibraryLevelIdstring
The job library level this profile is based on.
-
codestring
Stable profile code.
-
jobTitlestring
Main display title shown in the directory.
-
externalTitlestring | null
Public/recruiting title.
-
descriptionstring | null
Optional profile description.
-
statusstring
Current status of the job profile.
Returns
Returns the job library profile if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/job-library-profiles/:idcurl https://app.humaans.io/api/job-library-profiles/QQX6J5Mu8wgmBjlDH6FLqnX0 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "QQX6J5Mu8wgmBjlDH6FLqnX0",
"jobLibraryRoleId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"jobLibraryLevelId": "Kx2mR8nQvT5wY7bH3cF6dJ9p",
"code": "SSE",
"jobTitle": "Senior Software Engineer",
"externalTitle": "Senior Software Engineer",
"description": "Designs and builds core product features end to end.",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Delete a job library profile
Permanently deletes a job library profile. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/job-library-profiles/:idcurl https://app.humaans.io/api/job-library-profiles/QQX6J5Mu8wgmBjlDH6FLqnX0 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "QQX6J5Mu8wgmBjlDH6FLqnX0",
"deleted": true
}Job library roles
A job library role is a job function or family, for example “Software Engineer” within the “Engineering” function. Roles are combined with levels to form job library profiles.
GET /api/job-library-roles GET /api/job-library-roles/:id POST /api/job-library-roles PATCH /api/job-library-roles/:idDELETE /api/job-library-roles/:idjobLibrary:readjobLibrary:writeJob library role object
Attributes
-
idstring
Unique identifier for the object.
-
codestring
A stable code identifier for the role, e.g. “SWE”.
-
namestring
The name of the role, e.g. “Software Engineer”.
-
jobFunctionstring
The job function this role belongs to, e.g. “Engineering”.
-
jobFamilystring
The job family this role belongs to, e.g. “Software Engineering”.
-
statusstring
Whether the role is
activeorarchived. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time the role was deleted. Only present on deleted roles, which are only returned when querying with
includeDeleted.
{
"id": "nEi45tsrWdbcJqxzaH8lA36H",
"code": "SWE",
"name": "Software Engineer",
"jobFunction": "Engineering",
"jobFamily": "Software Engineering",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}List all job library roles
Returns a list of job library roles.
Parameters
-
idstring · $in
The ID of the role.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
statusstring
Filter roles by status.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter roles by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$selectstring[]
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
job library roles. The response skips the first $skip results. Each entry is a
separate job library role object. If no job library roles are available,
data is empty.
GET /api/job-library-rolescurl https://app.humaans.io/api/job-library-roles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "nEi45tsrWdbcJqxzaH8lA36H",
"code": "SWE",
"name": "Software Engineer",
"jobFunction": "Engineering",
"jobFamily": "Software Engineering",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}
]
}Retrieve a job library role
Retrieves the job library role with the given ID.
Parameters
- No parameters
Returns
Returns a job library role object if a valid identifier was provided.
GET /api/job-library-roles/:idcurl https://app.humaans.io/api/job-library-roles/nEi45tsrWdbcJqxzaH8lA36H \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "nEi45tsrWdbcJqxzaH8lA36H",
"code": "SWE",
"name": "Software Engineer",
"jobFunction": "Engineering",
"jobFamily": "Software Engineering",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Create a job library role
Parameters
-
codestring required
A stable code identifier for the role, e.g. “SWE”.
-
namestring required
The name of the role, e.g. “Software Engineer”.
-
jobFunctionstring required
The job function this role belongs to, e.g. “Engineering”.
-
jobFamilystring required
The job family this role belongs to, e.g. “Software Engineering”.
-
statusstring
Whether the role is
activeorarchived.
Returns
Returns a job library role if the call succeeded. The call returns an error if parameters are invalid.
POST /api/job-library-rolescurl https://app.humaans.io/api/job-library-roles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"code":"SWE","name":"Software Engineer","jobFunction":"Engineering","jobFamily":"Software Engineering"}'
{
"id": "nEi45tsrWdbcJqxzaH8lA36H",
"code": "SWE",
"name": "Software Engineer",
"jobFunction": "Engineering",
"jobFamily": "Software Engineering",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Update a job library role
Parameters
-
codestring
A stable code identifier for the role, e.g. “SWE”.
-
namestring
The name of the role, e.g. “Software Engineer”.
-
jobFunctionstring
The job function this role belongs to, e.g. “Engineering”.
-
jobFamilystring
The job family this role belongs to, e.g. “Software Engineering”.
-
statusstring
Whether the role is
activeorarchived.
Returns
Returns the job library role if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/job-library-roles/:idcurl https://app.humaans.io/api/job-library-roles/nEi45tsrWdbcJqxzaH8lA36H \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "nEi45tsrWdbcJqxzaH8lA36H",
"code": "SWE",
"name": "Software Engineer",
"jobFunction": "Engineering",
"jobFamily": "Software Engineering",
"status": "active",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Delete a job library role
Permanently deletes a job library role. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/job-library-roles/:idcurl https://app.humaans.io/api/job-library-roles/nEi45tsrWdbcJqxzaH8lA36H \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "nEi45tsrWdbcJqxzaH8lA36H",
"deleted": true
}Job roles
An object representing the role of an employee at a company. Employees always have a role that is currently in effect and optionally some past roles.
GET /api/job-roles GET /api/job-roles/:id POST /api/job-roles PATCH /api/job-roles/:idDELETE /api/job-roles/:idprivate:readpublic:readprivate:writeJob role object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
jobTitlestring
Job title.
-
departmentstring
The name of the department.
-
effectiveDatedate
The date when this role took effect. Can be a past or future date.
-
endDatedate
The date when this role finished,
nullif this is the last role. -
isFirstboolean
Whether this is the first job role for this person.
-
reportingTostring
The ID of the manager.
-
notestring
An optional note about this particular job role entry.
-
jobLibraryProfileIdstring
The job library profile this role is linked to.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time this job role was deleted. Only present on deleted job roles, which are only returned when querying with
includeDeleted.
{
"id": "hmA5GnUq9ojK86LLKKWbiuKG",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"jobTitle": "Software Engineer",
"department": "Engineering",
"effectiveDate": "2020-02-15",
"endDate": "2020-02-22",
"reportingTo": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"note": "Switched departments",
"jobLibraryProfileId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}List all job roles
Returns a list of job roles.
Parameters
-
departmentstring | empty
Filter job roles by department name, or null to find roles with no department. Each role is matched against the department in effect on $asOf, or on the role’s own effectiveDate when $asOf is omitted. Where departments form a hierarchy, a role in a sub-department also matches its parent. Use with $asOf to get current roles in a department.
-
effectiveDatedate | date-time · $gt $gte $lt $lte
Filter job roles by the date the role takes or took effect. Dates may be past or future.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $in
The person to filter queries by.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter job roles by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$asOfdate
Filter the list to at most one role per employee, finding the job role that was in effect on the provided date. Cannot be combined with
includeDeleted. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.effectiveDatenumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
job roles. The response skips the first $skip results. Each entry is a
separate job role object. If no job roles are available,
data is empty.
GET /api/job-rolescurl https://app.humaans.io/api/job-roles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "hmA5GnUq9ojK86LLKKWbiuKG",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"jobTitle": "Software Engineer",
"department": "Engineering",
"effectiveDate": "2020-02-15",
"endDate": "2020-02-22",
"reportingTo": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"note": "Switched departments",
"jobLibraryProfileId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}
]
}Retrieve a job role
Retrieves the job role with the given ID.
Parameters
- No parameters
Returns
Returns a job role object if a valid identifier was provided.
GET /api/job-roles/:idcurl https://app.humaans.io/api/job-roles/hmA5GnUq9ojK86LLKKWbiuKG \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "hmA5GnUq9ojK86LLKKWbiuKG",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"jobTitle": "Software Engineer",
"department": "Engineering",
"effectiveDate": "2020-02-15",
"endDate": "2020-02-22",
"reportingTo": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"note": "Switched departments",
"jobLibraryProfileId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Create a job role
Any number of job roles can be created per each employee, but only the role with the highest effectiveDate that is not in the future will be considered as the active role. Note, that to preserve accurate records and history typically you want to create new roles instead of editing existing ones when job titles, managers or other aspects of the role change.
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
jobTitlestring required
Job title.
-
departmentstring | null
The name of the department.
-
effectiveDatedate required
The date when this role took effect. Can be a past or future date.
-
notestring | null
An optional note about this particular job role entry.
-
reportingTostring | null
The ID of the manager.
-
jobLibraryProfileIdstring | null
The job library profile this role is linked to.
-
customValuesobject[]
-
customValues.customFieldIdstring required
-
customValues.valuestring | string[] required
-
customValues.resourceId
Returns
Returns a job role if the call succeeded. The call returns an error if parameters are invalid.
POST /api/job-rolescurl https://app.humaans.io/api/job-roles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"jobTitle":"Product Engineer"}'
{
"id": "hmA5GnUq9ojK86LLKKWbiuKG",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"jobTitle": "Product Engineer",
"department": "Engineering",
"effectiveDate": "2020-02-15",
"endDate": "2020-02-22",
"reportingTo": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"note": "Switched departments",
"jobLibraryProfileId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Update a job role
Updates the job role object. Note, that to preserve accurate records and history typically you want to create new roles instead of editing existing ones when job titles, managers or other aspects of the role change.
Parameters
-
jobTitlestring
Job title.
-
departmentstring | null
The name of the department.
-
effectiveDatedate
The date when this role took effect. Can be a past or future date.
-
notestring | null
An optional note about this particular job role entry.
-
reportingTostring | null
The ID of the manager.
-
jobLibraryProfileIdstring | null
The job library profile this role is linked to.
Returns
Returns the job role if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/job-roles/:idcurl https://app.humaans.io/api/job-roles/hmA5GnUq9ojK86LLKKWbiuKG \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"jobTitle":"Product Engineer"}'
{
"id": "hmA5GnUq9ojK86LLKKWbiuKG",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"jobTitle": "Product Engineer",
"department": "Engineering",
"effectiveDate": "2020-02-15",
"endDate": "2020-02-22",
"reportingTo": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"note": "Switched departments",
"jobLibraryProfileId": "6iJcJ6aKIj1H4ubC4Zp0LlT6",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}Delete a job role
Permanently deletes a job role. It cannot be undone. Note that every employee must have at least one job role, deleting the last job role is going to return an error.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/job-roles/:idcurl https://app.humaans.io/api/job-roles/hmA5GnUq9ojK86LLKKWbiuKG \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "hmA5GnUq9ojK86LLKKWbiuKG",
"deleted": true
}Locations
An object representing a place of work - such as an office,
a store, warehouse, etc. Each employee within
the company must be added to a location or marked as remote employee by
setting their locationId to remote.
GET /api/locations GET /api/locations/:id POST /api/locations PATCH /api/locations/:idDELETE /api/locations/:idpublic:readprivate:writeLocation object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
labelstring
A label for this location that is used to refer to the location.
-
displayNamestring
-
codestring
A short unique code for this location, e.g. an identifier used in payroll or other external systems.
-
addressstring
A street address of the location.
-
postcodestring
Postcode.
-
citystring
City.
-
statestring
State.
-
countrystring
Country name, infered from the
countryCode. -
regionCodestring
Region code in ISO 3166-2 format e.g. CA-QC for Quebec.
-
countryCodestring
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
timezonestring
Timezone, infered from the city and country.
-
isAddressInvalidboolean
If the address, or some component of it is not valid, this will be set to true.
-
timeAwayPolicyIdstring
The time away policy to be applied to everyone added to this location. Note: changing this will also update everyone that works at this location to a new policy.
-
timeAwayPolicyEffectiveDatedate
When provided, time away policy changes will be effective from this date.
-
workingPatternIdstring
The working pattern to be applied to everyone added to this location. Note: changing this will also update everyone that works at this location to a new working pattern.
-
workingPatternEffectiveDatedate
When provided, working pattern changes will be effective from this date.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "oIBBB436k2YCOY5gzVhC5idx",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"label": "Acme HQ",
"displayName": "Acme HQ",
"code": "LON",
"address": "Uncommon, 22 Curved Road",
"postcode": "SE1 5AG",
"city": "London",
"state": null,
"country": "United Kingdom",
"regionCode": null,
"countryCode": "GB",
"timezone": "Europe/London",
"isAddressInvalid": false,
"timeAwayPolicyId": "lQhHxduYbvq0TRIJq2IPN3hH",
"timeAwayPolicyEffectiveDate": "2024-01-30",
"workingPatternId": "lQhHxduYbvq0TRIJq2IPN3hH",
"workingPatternEffectiveDate": "2024-04-06",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all locations
Returns a list of locations.
Parameters
-
codestring · $in
Filter locations by code.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter locations by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
locations. The response skips the first $skip results. Each entry is a
separate location object. If no locations are available,
data is empty.
GET /api/locationscurl https://app.humaans.io/api/locations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "oIBBB436k2YCOY5gzVhC5idx",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"label": "Acme HQ",
"displayName": "Acme HQ",
"code": "LON",
"address": "Uncommon, 22 Curved Road",
"postcode": "SE1 5AG",
"city": "London",
"state": null,
"country": "United Kingdom",
"regionCode": null,
"countryCode": "GB",
"timezone": "Europe/London",
"isAddressInvalid": false,
"timeAwayPolicyId": "lQhHxduYbvq0TRIJq2IPN3hH",
"timeAwayPolicyEffectiveDate": "2024-01-30",
"workingPatternId": "lQhHxduYbvq0TRIJq2IPN3hH",
"workingPatternEffectiveDate": "2024-04-06",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a location
Retrieves the location with the given ID.
Parameters
- No parameters
Returns
Returns a location object if a valid identifier was provided.
GET /api/locations/:idcurl https://app.humaans.io/api/locations/oIBBB436k2YCOY5gzVhC5idx \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "oIBBB436k2YCOY5gzVhC5idx",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"label": "Acme HQ",
"displayName": "Acme HQ",
"code": "LON",
"address": "Uncommon, 22 Curved Road",
"postcode": "SE1 5AG",
"city": "London",
"state": null,
"country": "United Kingdom",
"regionCode": null,
"countryCode": "GB",
"timezone": "Europe/London",
"isAddressInvalid": false,
"timeAwayPolicyId": "lQhHxduYbvq0TRIJq2IPN3hH",
"timeAwayPolicyEffectiveDate": "2024-01-30",
"workingPatternId": "lQhHxduYbvq0TRIJq2IPN3hH",
"workingPatternEffectiveDate": "2024-04-06",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a location
Parameters
-
addressstring | null
A street address of the location.
-
citystring required
City.
-
statestring | null
State.
-
postcodestring | null
Postcode.
-
countryCodestring required
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
labelstring | null
A label for this location that is used to refer to the location.
-
codestring | null
A short unique code for this location, e.g. an identifier used in payroll or other external systems.
-
timeAwayPolicyIdstring required
The time away policy to be applied to everyone added to this location. Note: changing this will also update everyone that works at this location to a new policy.
-
timeAwayPolicyEffectiveDatedate | null
When provided, time away policy changes will be effective from this date.
-
workingPatternIdstring | null
The working pattern to be applied to everyone added to this location. Note: changing this will also update everyone that works at this location to a new working pattern.
-
workingPatternEffectiveDatedate | null
When provided, working pattern changes will be effective from this date.
Returns
Returns a location if the call succeeded. The call returns an error if parameters are invalid.
POST /api/locationscurl https://app.humaans.io/api/locations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"city":"London","countryCode":"GB","timeAwayPolicyId":"lQhHxduYbvq0TRIJq2IPN3hH"}'
{
"id": "oIBBB436k2YCOY5gzVhC5idx",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"label": "Acme HQ",
"displayName": "Acme HQ",
"code": "LON",
"address": "Uncommon, 22 Curved Road",
"postcode": "SE1 5AG",
"city": "London",
"state": null,
"country": "United Kingdom",
"regionCode": null,
"countryCode": "GB",
"timezone": "Europe/London",
"isAddressInvalid": false,
"timeAwayPolicyId": "lQhHxduYbvq0TRIJq2IPN3hH",
"timeAwayPolicyEffectiveDate": "2024-01-30",
"workingPatternId": "lQhHxduYbvq0TRIJq2IPN3hH",
"workingPatternEffectiveDate": "2024-04-06",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a location
Parameters
-
addressstring | null
A street address of the location.
-
citystring
City.
-
statestring | null
State.
-
postcodestring | null
Postcode.
-
countryCodestring
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
labelstring | null
A label for this location that is used to refer to the location.
-
codestring | null
A short unique code for this location, e.g. an identifier used in payroll or other external systems.
-
timeAwayPolicyIdstring
The time away policy to be applied to everyone added to this location. Note: changing this will also update everyone that works at this location to a new policy.
-
timeAwayPolicyEffectiveDatedate | null
When provided, time away policy changes will be effective from this date.
-
workingPatternIdstring | null
The working pattern to be applied to everyone added to this location. Note: changing this will also update everyone that works at this location to a new working pattern.
-
workingPatternEffectiveDatedate | null
When provided, working pattern changes will be effective from this date.
-
updateExistingPeopleTimeAwayPolicyboolean
When true (default), changing the time away policy will also update existing employees at this location. Set to false to only affect new employees.
-
updateExistingPeopleWorkingPatternboolean
When true (default), changing the working pattern will also update existing employees at this location. Set to false to only affect new employees.
Returns
Returns the location if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/locations/:idcurl https://app.humaans.io/api/locations/oIBBB436k2YCOY5gzVhC5idx \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"city":"Quebec"}'
{
"id": "oIBBB436k2YCOY5gzVhC5idx",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"label": "Acme HQ",
"displayName": "Acme HQ",
"code": "LON",
"address": "Uncommon, 22 Curved Road",
"postcode": "SE1 5AG",
"city": "Quebec",
"state": null,
"country": "United Kingdom",
"regionCode": null,
"countryCode": "GB",
"timezone": "Europe/London",
"isAddressInvalid": false,
"timeAwayPolicyId": "lQhHxduYbvq0TRIJq2IPN3hH",
"timeAwayPolicyEffectiveDate": "2024-01-30",
"workingPatternId": "lQhHxduYbvq0TRIJq2IPN3hH",
"workingPatternEffectiveDate": "2024-04-06",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a location
Permanently deletes a location. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/locations/:idcurl https://app.humaans.io/api/locations/oIBBB436k2YCOY5gzVhC5idx \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "oIBBB436k2YCOY5gzVhC5idx",
"deleted": true
}Me
An endpoint that returns the person object representing the currently logged in user, or the owner of the access token. This method proxies to api/people to retrieve this object.
GET /api/meprivate:readpublic:readMe object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
spaceIdstring
ID of the Space this person belongs to.
-
firstNamestring
First name.
-
middleNamestring
Middle name.
-
lastNamestring
Last name.
-
preferredNamestring
Preferred first name that the person goes by. This will be shown in Humaans instead of the first name if set.
-
pronounsstring
Preferred pronouns that the person goes by
-
emailstring
The work email of the person. The email they use to log in.
-
locationIdstring
The ID of the location this person works at. It can be either the ID of a location or the string literal
remote, in which case it indicates this person works remotely and the working location can be found in theremoteCity,remoteRegionCodeandremoteCountryCodefields. -
remoteCitystring
When
locationIdis set to remote, this indicates the city that this person works in. -
remoteRegionCodestring
When
locationIdis set to remote, this indicates the region that this person works in. Region code in ISO 3166-2 format e.g. CA-QC for Quebec. -
remoteCountryCodestring
When
locationIdis set to remote, this indicates the country that this person works in. Country code in in ISO 3166-2 format, e.g. GB for United Kingdom. -
remoteTimezonestring
When
locationIdis set to remote, this indicates the timezone that this person works in. The timezone is infered from the city and country code. -
timeAwayApprovalFlowIdstring
The Id of the time away approval flow this person works under.
-
personalEmailstring
Personal email of the person.
-
phoneNumberstring
Work phone number of the person.
-
formattedPhoneNumberstring
Work phone number of the person formatted for display.
-
personalPhoneNumberstring
Personal phone number of the person.
-
formattedPersonalPhoneNumberstring
Personal phone number of the person formatted for display.
-
genderstring
Person’s gender. It’s a free form field, any value is allowed.
-
birthdaystring
Person’s date of birth. Only disclosed to users with
owner,adminandfinanceroles. -
profilePhotoIdstring
ID of the profile picture file.
-
profilePhotoobject
When a profile photo file is uploaded, it gets resized to several predefined sizes and uploaded to a CDN. The URLs of those files are provided in this object. Note, that you can still access the original un-resized file via
api/files. -
profilePhoto.idstring
Unique identifier for the object.
-
profilePhoto.filenamestring
-
profilePhoto.variantsobject
A map of the predefined profile photo sizes. Some used in 2x displays, some used in 3x displays.
-
profilePhoto.variants.64string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.96string
URL of one of the predefined 3x profile photo sizes.
-
profilePhoto.variants.104string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.136string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.156string
URL of one of the predefined 3x profile photo sizes.
-
profilePhoto.variants.204string
URL of one of the predefined 3x profile photo sizes.
-
profilePhoto.variants.320string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.480string
URL of one of the predefined 3x profile photo sizes.
-
nationalitystring
Nationality.
-
nationalitiesstring[]
Nationalities.
-
spokenLanguagesstring[]
Spoken languages.
-
dietaryPreferencestring
Dietary preference. One of: No preference, Pescetarian, Vegetarian, Vegan, Halal, Jain, Kosher, Diabetic.
-
foodAllergiesstring[]
A list of food allergies.
-
addressstring
Street address component of the person’s home address.
-
citystring
City component of the persons home address.
-
statestring
Optional state component of the persons home address.
-
postcodestring
Postcode component of the persons home address.
-
countryCodestring
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
countrystring
Country name, infered from the
countryCode. -
biostring
An optional description about the person.
-
linkedInstring
LinkedIn handle
-
twitterstring
Twitter handle
-
githubstring
GitHub handle
-
employmentStartDatedate
Employment start date.
-
firstWorkingDaydate
The first day at work. Defaults to
employmentStartDateif not specified. -
employmentEndDatedate
Employment end date. If this date is in the past, this employee is considered to be offboarded and inactive.
-
lastWorkingDaydate
The last day at work. Defaults to
employmentEndDateif not specified. -
probationEndDatedate
Probation end date.
-
turnoverImpactstring
Turnover impact set for offboarded people. One of regrettable, non-regrettable or “not applicable”.
-
isManagerboolean
Whether this person is a manager (has direct reports). Only present when requested by
?include[]=isManagerquery parameter. -
workingDaysobject[]
A list of days worked by the employee.
-
workingDays.daystring
A day of the week. One of:
monday,tuesday,wednesday,thursday,friday,saturday,sunday, -
publicHolidayCalendarIdstring
The ID of the public holiday calendar this person uses, can be a country code, a country-region code or a regular id.
-
leavingReasonstring
Leaving reason set for offboarded people. One of dismissed, resigned, redundancy, contractEnded, other.
-
leavingNotestring
Leaving note set for offboarded people.
-
leavingFileIdstring
Leaving file id attached to offboarded people.
-
contractTypestring
The employment contract type. Commonly set to Full time, Part time, Contractor or Internship, but can be set to any value.
-
employeeIdstring
Employee ID as used by the company.
-
taxIdstring
The local tax ID frequently used for payroll purposes. For example, National Insurance Number in UK or Social Security Number in US.
-
taxCodestring
The local tax code / tax number frequently used for payroll purposes.
-
teamsobject[]
A list of teams. Often used for noting the cross functional team(s) the person is part of. Maximum of 12 items.
-
teams.namestring
Name of the team
-
statusstring
One of
active,offboardedornewHire. -
isVerifiedboolean
If false, it means this person has never logged in.
-
isWorkEmailHiddenboolean
If true, work email of this person will be visible to admins and their managers.
-
calendarFeedTokenstring
The calendar feed access token used in Calendar Feed URL. Only available to requesting user’s account. Set to
resetto reset the value of the token. -
rolestring
-
seenDocumentsAtdate-time
The last time the person has looked at their personal documents.
-
sourcestring
When the person is imported as a new hire, this field indicates what system (e.g. the name of the Applicant Tracking System) this person was imported from.
-
sourceIdstring
Unique identifier of the person in the system this person was imported from (e.g. the ID in the Applicant Tracking System).
-
timezonestring
Timezone, derived from the remote timezone, location timezone, or company timezone.
-
payrollProviderstring
The label or identifier of the payroll provider used to process payroll for this employee.
-
firstActiveAtdate-time
Timestamp the person became an active member
-
isBirthdayHiddenboolean
Whether this person has opted out from birthday announcements.
-
demoboolean
Whether this user is a demo user
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "vHS9r3ZBBx1IWO3kUbEoCmmd",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Retrieve me
Retrieves the currently logged in user.
Parameters
- No parameters
Returns
Returns the currently logged in person object.
GET /api/mecurl https://app.humaans.io/api/me \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "vHS9r3ZBBx1IWO3kUbEoCmmd",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Org hierarchies
An org hierarchy is a way of grouping people in your organisation, for example by department or by team. Each hierarchy is made up of one or more org unit types (its layers).
GET /api/org-hierarchiesGET /api/org-hierarchies/:idorgModel:readOrg hierarchy object
Attributes
-
idstring
Unique identifier for the object.
-
namestring
The name of the hierarchy.
-
codestring
A user specified code for the hierarchy,
nullif not set. -
isPrimaryboolean
Whether this is the primary hierarchy for the company. Exactly one hierarchy is primary.
-
orgUnitTypesobject[]
The types of org units which can appear in this hierarchy, returned in hierarchical order.
-
orgUnitTypes.idstring
Unique identifier for the org unit type.
-
orgUnitTypes.codestring
A user specified code for the org unit type.
-
orgUnitTypes.namestring
The name of the org unit type.
-
reportingRolestring
The name of the role people report up to in this hierarchy.
nullwhen the hierarchy has no lead field. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time the hierarchy was deleted. Only present on deleted hierarchies, which are only returned when querying with
includeDeleted.
{
"id": "Nyilss56MOoMjRDgXz2SNQWW",
"name": "Departments",
"code": "department",
"isPrimary": true,
"orgUnitTypes": [
{
"id": "T7uqPFK7am4lFTZm39AmNuay",
"code": "department",
"name": "Department"
}
],
"reportingRole": "Manager",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all org hierarchies
Returns a list of org hierarchies.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
isPrimaryboolean
Whether this is the primary hierarchy for the company. Exactly one hierarchy is primary.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter by createdAt.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
org hierarchies. The response skips the first $skip results. Each entry is a
separate org hierarchy object. If no org hierarchies are available,
data is empty.
GET /api/org-hierarchiescurl https://app.humaans.io/api/org-hierarchies \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "Nyilss56MOoMjRDgXz2SNQWW",
"name": "Departments",
"code": "department",
"isPrimary": true,
"orgUnitTypes": [
{
"id": "T7uqPFK7am4lFTZm39AmNuay",
"code": "department",
"name": "Department"
}
],
"reportingRole": "Manager",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve an org hierarchy
Retrieves the org hierarchy with the given ID.
Parameters
- No parameters
Returns
Returns an org hierarchy object if a valid identifier was provided.
GET /api/org-hierarchies/:idcurl https://app.humaans.io/api/org-hierarchies/Nyilss56MOoMjRDgXz2SNQWW \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "Nyilss56MOoMjRDgXz2SNQWW",
"name": "Departments",
"code": "department",
"isPrimary": true,
"orgUnitTypes": [
{
"id": "T7uqPFK7am4lFTZm39AmNuay",
"code": "department",
"name": "Department"
}
],
"reportingRole": "Manager",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Org unit assignments
An org unit assignment records that a person belongs to an org unit over a period of time. Listing them returns the full timeline by default, including past and future assignments — pass $asOf to narrow to a given date.
GET /api/org-unit-assignmentsGET /api/org-unit-assignments/:idorgModel:readOrg unit assignment object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
The id of the person this assignment belongs to.
-
orgUnitIdstring
The id of the org unit the person is assigned to.
-
effectiveDatedate
The date when this assignment took effect. Can be a past or future date.
-
endDatedate
The date when this assignment ends,
nullif this is the last assignment. -
orgHierarchyIdstring
The id of the hierarchy this assignment belongs to.
-
isPrimaryHierarchyboolean
Whether this assignment belongs to the company’s primary hierarchy.
-
isPrimaryAssignmentboolean
Whether this is the person’s primary assignment within this hierarchy. At most one assignment is primary per person per hierarchy at any point in time.
-
reportingTostring
The id of the person this assignment reports into. See
reportingRelationshipbelow for more details. -
reportingRelationshipobject
Details on the reporting role this assignment reports into, and how that role was resolved.
nullwhen the hierarchy has no reporting role. -
reportingRelationship.namestring
The name of the reporting role.
-
reportingRelationship.sourceobject
Where
reportingToresolved from.nullwhen there is no reporting leader. -
reportingRelationship.source.typestring
directwhenreportingTois specified by the org unit,inheritedwhen it comes from an ancestor org unit, andindividualOverridewhen this person has their own value for the reporting role. -
reportingRelationship.source.orgUnitIdstring
The org unit the value applies to. The assigned unit itself for
directandindividualOverride, otherwise the ancestor the value was inherited from. -
createdAtdate-time
The date and time this assignment was created.
-
updatedAtdate-time
The date and time this assignment was last updated.
-
deletedAtdate-time
The date and time this assignment was deleted. Only present on deleted assignments, which are only returned when querying with
includeDeleted.
{
"id": "x3F5Q3cPpSHg1p53bAwZPVFv",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"orgUnitId": "Nyilss56MOoMjRDgXz2SNQWW",
"effectiveDate": "2020-02-15",
"endDate": null,
"orgHierarchyId": "Nyilss56MOoMjRDgXz2SNQWW",
"isPrimaryHierarchy": true,
"isPrimaryAssignment": true,
"reportingTo": "IL3vneCYhIx0xrR6um2sy2nW",
"reportingRelationship": {
"source": {}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all org unit assignments
Returns a list of org unit assignments.
Parameters
-
effectiveDatedate | date-time · $gt $gte $lt $lte
The date when this assignment took effect. Can be a past or future date.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
isPrimaryAssignmentboolean
Restrict the assignments to only the primary ones, or only the non-primary ones.
-
isPrimaryHierarchyboolean at most one of orgHierarchyId or isPrimaryHierarchy
Restrict the assignments to the company’s primary hierarchy, or to every hierarchy except it. Cannot be combined with
orgHierarchyId. -
orgHierarchyIdstring · $eq $ne $in $nin at most one of orgHierarchyId or isPrimaryHierarchy
The id of the hierarchy this assignment belongs to.
-
orgUnitIdstring · $eq $ne $in $nin
The id of the org unit the person is assigned to.
-
personIdstring · $in
The id of the person this assignment belongs to.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter by createdAt.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$asOfdate | empty
Restrict the assignments to those in effect on the given date. Cannot be combined with
includeDeleted. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.effectiveDatenumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
org unit assignments. The response skips the first $skip results. Each entry is a
separate org unit assignment object. If no org unit assignments are available,
data is empty.
GET /api/org-unit-assignmentscurl https://app.humaans.io/api/org-unit-assignments \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "x3F5Q3cPpSHg1p53bAwZPVFv",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"orgUnitId": "Nyilss56MOoMjRDgXz2SNQWW",
"effectiveDate": "2020-02-15",
"endDate": null,
"orgHierarchyId": "Nyilss56MOoMjRDgXz2SNQWW",
"isPrimaryHierarchy": true,
"isPrimaryAssignment": true,
"reportingTo": "IL3vneCYhIx0xrR6um2sy2nW",
"reportingRelationship": {
"source": {}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve an org unit assignment
Retrieves the org unit assignment with the given ID.
Parameters
- No parameters
Returns
Returns an org unit assignment object if a valid identifier was provided.
GET /api/org-unit-assignments/:idcurl https://app.humaans.io/api/org-unit-assignments/x3F5Q3cPpSHg1p53bAwZPVFv \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "x3F5Q3cPpSHg1p53bAwZPVFv",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"orgUnitId": "Nyilss56MOoMjRDgXz2SNQWW",
"effectiveDate": "2020-02-15",
"endDate": null,
"orgHierarchyId": "Nyilss56MOoMjRDgXz2SNQWW",
"isPrimaryHierarchy": true,
"isPrimaryAssignment": true,
"reportingTo": "IL3vneCYhIx0xrR6um2sy2nW",
"reportingRelationship": {
"source": {}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Org units
An org unit is a node in an org hierarchy, for example a specific department or team. The list is flat: parentId carries the tree shape within a hierarchy.
GET /api/org-unitsGET /api/org-units/:idorgModel:readOrg unit object
Attributes
-
idstring
Unique identifier for the object.
-
orgUnitTypeIdstring
The id of org unit type this unit belongs to
-
namestring
The name of the org unit.
-
codestring
A user specified code for the org unit.
nullwhen not set. -
descriptionstring
Free text description of the org unit.
-
parentIdstring
The id of the parent org unit.
nullif this is a top level org unit. -
orgHierarchyIdstring
The id of the org hierarchy this unit belongs to.
-
reportingLeaderIdstring
The id of the reporting lead for this org unit.
-
reportingRelationshipobject
The reporting role this unit reports into, and where the reporting leader resolved from.
nullwhen the hierarchy has no reporting role, in which case it produces no reporting at all. -
reportingRelationship.namestring
The name of the reporting role.
-
reportingRelationship.sourceobject
Where
reportingLeaderIdresolved from.nullwhen there is no reporting leader. -
reportingRelationship.source.typestring
directwhenreportingTois specified by the org unit andinheritedwhen it comes from an ancestor org unit. -
reportingRelationship.source.orgUnitIdstring
The org unit the value applies to. The org unit itself for
direct, or otherwise the ancestor the value was inherited from. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
The date and time the org unit was deleted. Only present on deleted units, which are only returned when querying with
includeDeleted.
{
"id": "buMfTrl9M65AHakPANgNqfzP",
"name": "Engineering",
"code": "engineering",
"parentId": null,
"orgHierarchyId": "Nyilss56MOoMjRDgXz2SNQWW",
"reportingLeaderId": "IL3vneCYhIx0xrR6um2sy2nW",
"reportingRelationship": {
"name": "Manager",
"source": {
"type": "direct",
"orgUnitId": "Nyilss56MOoMjRDgXz2SNQWW"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}List all org units
Returns a list of org units.
Parameters
-
idstring · $eq $ne $in $nin
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
isPrimaryHierarchyboolean at most one of orgHierarchyId or isPrimaryHierarchy
Restrict the units to the company’s primary hierarchy, or to every hierarchy except it. Cannot be combined with
orgHierarchyId. -
orgHierarchyIdstring at most one of orgHierarchyId or isPrimaryHierarchy
Restrict the units to a single org hierarchy. Units in every hierarchy are returned when omitted. Cannot be combined with
isPrimaryHierarchy. -
orgUnitTypeIdstring · $eq $ne $in $nin
The id of org unit type this unit belongs to
-
parentIdstring | empty
Restrict the units to the direct children of the given org unit. Pass an empty value to return only the top level units.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter by createdAt.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
org units. The response skips the first $skip results. Each entry is a
separate org unit object. If no org units are available,
data is empty.
GET /api/org-unitscurl https://app.humaans.io/api/org-units \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "buMfTrl9M65AHakPANgNqfzP",
"name": "Engineering",
"code": "engineering",
"parentId": null,
"orgHierarchyId": "Nyilss56MOoMjRDgXz2SNQWW",
"reportingLeaderId": "IL3vneCYhIx0xrR6um2sy2nW",
"reportingRelationship": {
"name": "Manager",
"source": {
"type": "direct",
"orgUnitId": "Nyilss56MOoMjRDgXz2SNQWW"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}
]
}Retrieve an org unit
Retrieves the org unit with the given ID.
Parameters
- No parameters
Returns
Returns an org unit object if a valid identifier was provided.
GET /api/org-units/:idcurl https://app.humaans.io/api/org-units/buMfTrl9M65AHakPANgNqfzP \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "buMfTrl9M65AHakPANgNqfzP",
"name": "Engineering",
"code": "engineering",
"parentId": null,
"orgHierarchyId": "Nyilss56MOoMjRDgXz2SNQWW",
"reportingLeaderId": "IL3vneCYhIx0xrR6um2sy2nW",
"reportingRelationship": {
"name": "Manager",
"source": {
"type": "direct",
"orgUnitId": "Nyilss56MOoMjRDgXz2SNQWW"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"deletedAt": null
}People
An object representing an an employee at a company. The most important object in Humaans.
GET /api/people GET /api/people/:id POST /api/people PATCH /api/people/:idDELETE /api/people/:idprivate:readpublic:readprivate:writePerson object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
spaceIdstring
ID of the Space this person belongs to.
-
firstNamestring
First name.
-
middleNamestring
Middle name.
-
lastNamestring
Last name.
-
preferredNamestring
Preferred first name that the person goes by. This will be shown in Humaans instead of the first name if set.
-
pronounsstring
Preferred pronouns that the person goes by
-
emailstring
The work email of the person. The email they use to log in.
-
jobRoleobject
The job role details of this person.
-
locationIdstring
The ID of the location this person works at. It can be either the ID of a location or the string literal
remote, in which case it indicates this person works remotely and the working location can be found in theremoteCity,remoteRegionCodeandremoteCountryCodefields. -
remoteCitystring
When
locationIdis set to remote, this indicates the city that this person works in. -
remoteRegionCodestring
When
locationIdis set to remote, this indicates the region that this person works in. Region code in ISO 3166-2 format e.g. CA-QC for Quebec. -
remoteCountryCodestring
When
locationIdis set to remote, this indicates the country that this person works in. Country code in in ISO 3166-2 format, e.g. GB for United Kingdom. -
remoteTimezonestring
When
locationIdis set to remote, this indicates the timezone that this person works in. The timezone is infered from the city and country code. -
timeAwayApprovalFlowIdstring
The Id of the time away approval flow this person works under.
-
personalEmailstring
Personal email of the person.
-
phoneNumberstring
Work phone number of the person.
-
formattedPhoneNumberstring
Work phone number of the person formatted for display.
-
personalPhoneNumberstring
Personal phone number of the person.
-
formattedPersonalPhoneNumberstring
Personal phone number of the person formatted for display.
-
genderstring
Person’s gender. It’s a free form field, any value is allowed.
-
birthdaystring
Person’s date of birth. Only disclosed to users with
owner,adminandfinanceroles. -
profilePhotoIdstring
ID of the profile picture file.
-
profilePhotoobject
When a profile photo file is uploaded, it gets resized to several predefined sizes and uploaded to a CDN. The URLs of those files are provided in this object. Note, that you can still access the original un-resized file via
api/files. -
profilePhoto.idstring
Unique identifier for the object.
-
profilePhoto.filenamestring
-
profilePhoto.variantsobject
A map of the predefined profile photo sizes. Some used in 2x displays, some used in 3x displays.
-
profilePhoto.variants.64string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.96string
URL of one of the predefined 3x profile photo sizes.
-
profilePhoto.variants.104string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.136string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.156string
URL of one of the predefined 3x profile photo sizes.
-
profilePhoto.variants.204string
URL of one of the predefined 3x profile photo sizes.
-
profilePhoto.variants.320string
URL of one of the predefined 2x profile photo sizes.
-
profilePhoto.variants.480string
URL of one of the predefined 3x profile photo sizes.
-
nationalitystring
Nationality.
-
nationalitiesstring[]
Nationalities.
-
spokenLanguagesstring[]
Spoken languages.
-
dietaryPreferencestring
Dietary preference. One of: No preference, Pescetarian, Vegetarian, Vegan, Halal, Jain, Kosher, Diabetic.
-
foodAllergiesstring[]
A list of food allergies.
-
addressstring
Street address component of the person’s home address.
-
citystring
City component of the persons home address.
-
statestring
Optional state component of the persons home address.
-
postcodestring
Postcode component of the persons home address.
-
countryCodestring
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
countrystring
Country name, infered from the
countryCode. -
biostring
An optional description about the person.
-
linkedInstring
LinkedIn handle
-
twitterstring
Twitter handle
-
githubstring
GitHub handle
-
employmentStartDatedate
Employment start date.
-
firstWorkingDaydate
The first day at work. Defaults to
employmentStartDateif not specified. -
employmentEndDatedate
Employment end date. If this date is in the past, this employee is considered to be offboarded and inactive.
-
lastWorkingDaydate
The last day at work. Defaults to
employmentEndDateif not specified. -
probationEndDatedate
Probation end date.
-
turnoverImpactstring
Turnover impact set for offboarded people. One of regrettable, non-regrettable or “not applicable”.
-
isManagerboolean
Whether this person is a manager (has direct reports). Only present when requested by
?include[]=isManagerquery parameter. -
workingDaysobject[]
A list of days worked by the employee.
-
workingDays.daystring
A day of the week. One of:
monday,tuesday,wednesday,thursday,friday,saturday,sunday, -
publicHolidayCalendarIdstring
The ID of the public holiday calendar this person uses, can be a country code, a country-region code or a regular id.
-
leavingReasonstring
Leaving reason set for offboarded people. One of dismissed, resigned, redundancy, contractEnded, other.
-
leavingNotestring
Leaving note set for offboarded people.
-
leavingFileIdstring
Leaving file id attached to offboarded people.
-
contractTypestring
The employment contract type. Commonly set to Full time, Part time, Contractor or Internship, but can be set to any value.
-
employeeIdstring
Employee ID as used by the company.
-
taxIdstring
The local tax ID frequently used for payroll purposes. For example, National Insurance Number in UK or Social Security Number in US.
-
taxCodestring
The local tax code / tax number frequently used for payroll purposes.
-
teamsobject[]
A list of teams. Often used for noting the cross functional team(s) the person is part of. Maximum of 12 items.
-
teams.namestring
Name of the team
-
statusstring
One of
active,offboardedornewHire. -
isVerifiedboolean
If false, it means this person has never logged in.
-
isWorkEmailHiddenboolean
If true, work email of this person will be visible to admins and their managers.
-
calendarFeedTokenstring
The calendar feed access token used in Calendar Feed URL. Only available to requesting user’s account. Set to
resetto reset the value of the token. -
rolestring
-
seenDocumentsAtdate-time
The last time the person has looked at their personal documents.
-
sourcestring
When the person is imported as a new hire, this field indicates what system (e.g. the name of the Applicant Tracking System) this person was imported from.
-
sourceIdstring
Unique identifier of the person in the system this person was imported from (e.g. the ID in the Applicant Tracking System).
-
timezonestring
Timezone, derived from the remote timezone, location timezone, or company timezone.
-
payrollProviderstring
The label or identifier of the payroll provider used to process payroll for this employee.
-
firstActiveAtdate-time
Timestamp the person became an active member
-
isBirthdayHiddenboolean
Whether this person has opted out from birthday announcements.
-
demoboolean
Whether this user is a demo user
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "VMB1yzL5uL8VvNNCJc9rykJz",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all people
Returns a list of people.
By default, only people with status active are returned. These are people
that are actively employed at the company. Note that people that have already
started and people that have the employment start date in the future are considered
to be active.
If the last working day is set and is in the past, the status changes
to offboarded. Fetch only offboarded people with ?status=offboarded.
People that are imported from Applicant Tracking Systems (ATS) have the status
of newHire. New hires is a way to add people into the system with limited data
(e.g. without work email or place of work). Once the missing data is available and
is populated, the new hires can be promoted to active status. Fetch only new
hires with ?status=newHire.
To fetch all people at once, use ?status=all. Note: be cautious when fetching
all people, as new statuses might get introduced in the future.
It is also possible to fetch multiple statuses at once, e.g. ?status[$in]=active&status[$in]=offboarded.
Refer to Filtering documentation for further details on usage of $in.
Parameters
-
emailstring
Filter people by work email address.
-
employmentEndDatedate | date-time · $gt $gte $lt $lte
Filter people by employment end date.
-
employmentStartDatedate | date-time · $gt $gte $lt $lte
Filter people by employment start date.
-
firstNamestring · $ilike
Filter people by first name. Supports $ilike for case-insensitive matching.
-
firstWorkingDaydate | date-time · $gt $gte $lt $lte
Filter people by first working day.
-
genderstring · $eq $ne $in $nin $ilike
Filter people by gender (free-form value). Pass a string for an exact match, { “$in”: […] } for several values, or { “$ilike”: “…” } for case-insensitive matching.
-
includestring[]
Additional fields to include, not provided as part of the default payload. Supported values are:
isManager. -
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
lastNamestring · $ilike
Filter people by last name. Supports $ilike for case-insensitive matching.
-
lastWorkingDaydate | date-time · $gt $gte $lt $lte
Filter people by last working day.
-
payrollProviderstring · $eq $ne $in $nin
Filter people by payroll provider.
-
personalEmailstring
Filter people by personal email address.
-
preferredNamestring · $ilike
Filter people by preferred name. Supports $ilike for case-insensitive matching.
-
probationEndDatedate | date-time · $gt $gte $lt $lte
Filter people by probation end date.
-
spaceIdstring · $eq $ne $in $nin
Filter people by the ID of the Space they belong to.
-
statusstring · $in $nin
Filter people by status, one of
all,newHire,active,offboarded. Default:active. -
teamsstring · $any $not
Filter people by team.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter people by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
$orobject[]
Filter by multiple conditions using OR logic. Supports firstName, lastName, preferredName.
-
$or.firstNamestring · $ilike
-
$or.lastNamestring · $ilike
-
$or.preferredNamestring · $ilike
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
people. The response skips the first $skip results. Each entry is a
separate person object. If no people are available,
data is empty.
GET /api/peoplecurl https://app.humaans.io/api/people \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "VMB1yzL5uL8VvNNCJc9rykJz",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a person
Retrieves the person with the given ID.
Parameters
- No parameters
Returns
Returns a person object if a valid identifier was provided.
GET /api/people/:idcurl https://app.humaans.io/api/people/VMB1yzL5uL8VvNNCJc9rykJz \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "VMB1yzL5uL8VvNNCJc9rykJz",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a person
People can be created in 2 ways - with status active or newHire.
By default, when not specified otherwise, employees get created with active status.
In this case, all of the required fields as specified below must be provided.
It is possible to create people with status set to newHire. This is typically
done in Applicant Tracking System (ATS) integrations. When creating a person as a new hire
only one of email or personalEmail is required and all of the other fields are optional.
When creating new hires, you can make use of the source and sourceId fields to specify
extra metadata about where the new hire was imported from. New hires are only visible to
Owner and Admin roles. Their full profiles can not be opened until their status is updated to
active. To do so, use the patch method, set the status to active and provide any
of the missing required fields that were not provided when creating the new hire.
Parameters
-
firstNamestring required
First name.
-
middleNamestring | null
Middle name.
-
lastNamestring required
Last name.
-
preferredNamestring | null
Preferred first name that the person goes by. This will be shown in Humaans instead of the first name if set.
-
pronounsstring | null
Preferred pronouns that the person goes by
-
emailstring required
The work email of the person. The email they use to log in.
-
personalEmailstring | null
Personal email of the person.
-
phoneNumberstring | null
Work phone number of the person.
-
personalPhoneNumberstring | null
Personal phone number of the person.
-
genderstring | null
Person’s gender. It’s a free form field, any value is allowed.
-
birthdaydate | null
Person’s date of birth. Only disclosed to users with
owner,adminandfinanceroles. -
isBirthdayHiddenboolean
Whether this person has opted out from birthday announcements.
-
profilePhotoIdstring | null
ID of the profile picture file.
-
nationalitystring | null
Nationality.
-
nationalitiesstring[] | null
Nationalities.
-
spokenLanguagesstring[] | null
Spoken languages.
-
dietaryPreferencestring | null
Dietary preference. One of: No preference, Pescetarian, Vegetarian, Vegan, Halal, Jain, Kosher, Diabetic.
-
foodAllergiesstring[]
A list of food allergies.
-
addressstring | null
Street address component of the person’s home address.
-
citystring | null
City component of the persons home address.
-
statestring | null
Optional state component of the persons home address.
-
postcodestring | null
Postcode component of the persons home address.
-
countryCodestring | null
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
biostring | null
An optional description about the person.
-
linkedInstring | null
LinkedIn handle
-
twitterstring | null
Twitter handle
-
githubstring | null
GitHub handle
-
employmentStartDatedate required
Employment start date.
-
firstWorkingDaydate
The first day at work. Defaults to
employmentStartDateif not specified. -
employmentEndDatedate | null
Employment end date. If this date is in the past, this employee is considered to be offboarded and inactive.
-
lastWorkingDaydate | null
The last day at work. Defaults to
employmentEndDateif not specified. -
probationEndDatedate | null
Probation end date.
-
workingDaysobject[] | null
A list of days worked by the employee.
-
workingDays.daystring
A day of the week. One of:
monday,tuesday,wednesday,thursday,friday,saturday,sunday, -
turnoverImpactstring | null
Turnover impact set for offboarded people. One of regrettable, non-regrettable or “not applicable”.
-
leavingReasonstring | null
Leaving reason set for offboarded people. One of dismissed, resigned, redundancy, contractEnded, other.
-
leavingNotestring | null
Leaving note set for offboarded people.
-
leavingFileIdstring | null
Leaving file id attached to offboarded people.
-
contractTypestring | null
The employment contract type. Commonly set to Full time, Part time, Contractor or Internship, but can be set to any value.
-
payrollProviderstring | null
The label or identifier of the payroll provider used to process payroll for this employee.
-
employeeIdstring | null
Employee ID as used by the company.
-
taxIdstring | null
The local tax ID frequently used for payroll purposes. For example, National Insurance Number in UK or Social Security Number in US.
-
taxCodestring | null
The local tax code / tax number frequently used for payroll purposes.
-
locationIdstring required
The ID of the location this person works at. It can be either the ID of a location or the string literal
remote, in which case it indicates this person works remotely and the working location can be found in theremoteCity,remoteRegionCodeandremoteCountryCodefields. -
remoteCitystring | null
When
locationIdis set to remote, this indicates the city that this person works in. -
remoteCountryCodestring | null
When
locationIdis set to remote, this indicates the country that this person works in. Country code in in ISO 3166-2 format, e.g. GB for United Kingdom. -
timeAwayApprovalFlowIdstring
The Id of the time away approval flow this person works under.
-
spaceIdstring
ID of the Space this person belongs to.
-
teamsobject[]
A list of teams. Often used for noting the cross functional team(s) the person is part of. Maximum of 12 items.
-
teams.namestring required
Name of the team
-
statusstring
One of
active,offboardedornewHire. -
isWorkEmailHiddenboolean
If true, work email of this person will be visible to admins and their managers.
-
calendarFeedTokenstring
The calendar feed access token used in Calendar Feed URL. Only available to requesting user’s account. Set to
resetto reset the value of the token. -
seenDocumentsAtdate-time
The last time the person has looked at their personal documents.
-
publicHolidayCalendarIdstring | null
The ID of the public holiday calendar this person uses, can be a country code, a country-region code or a regular id.
-
jobRoleobject required
The job role details of this person.
-
jobRole.jobTitlestring required
Job title.
-
jobRole.jobLibraryProfileIdstring | null
-
jobRole.departmentstring | null
Department name.
-
jobRole.reportingTostring | null
The ID of the user this person reports to.
-
customValuesobject[]
-
customValues.customFieldIdstring required
-
customValues.valuestring required
-
timeAwayAllocationobject
The time away policy for this person.
-
timeAwayAllocation.timeAwayPolicyIdstring required
The ID of the timeaway policy.
Returns
Returns a person if the call succeeded. The call returns an error if parameters are invalid.
POST /api/peoplecurl https://app.humaans.io/api/people \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"firstName":"Kelsey","lastName":"Wicks","email":"kelsey@acme.com","locationId":"FnAjNOIyLRsmZGRohZsHApiE","jobRole":{"jobTitle":"Software Engineer","department":"Engineering","reportingTo":"OfcRvv174ir3Y6mNA5bPXqeY"},"employmentStartDate":"2018-03-10"}'
{
"id": "VMB1yzL5uL8VvNNCJc9rykJz",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a person
To offboard a person, set the employmentEndDate (and if relevant lastWorkingDay) to
some past or future date. Once that date is in the past (with respect to the UTC timezone),
the employee is considered to be offboarded, and their status field will switch to offboarded.
Parameters
-
firstNamestring
First name.
-
middleNamestring | null
Middle name.
-
lastNamestring
Last name.
-
preferredNamestring | null
Preferred first name that the person goes by. This will be shown in Humaans instead of the first name if set.
-
pronounsstring | null
Preferred pronouns that the person goes by
-
emailstring | null
The work email of the person. The email they use to log in.
-
personalEmailstring | null
Personal email of the person.
-
phoneNumberstring | null
Work phone number of the person.
-
personalPhoneNumberstring | null
Personal phone number of the person.
-
genderstring | null
Person’s gender. It’s a free form field, any value is allowed.
-
birthdaydate | null
Person’s date of birth. Only disclosed to users with
owner,adminandfinanceroles. -
isBirthdayHiddenboolean
Whether this person has opted out from birthday announcements.
-
profilePhotoIdstring | null
ID of the profile picture file.
-
nationalitystring | null
Nationality.
-
nationalitiesstring[] | null
Nationalities.
-
spokenLanguagesstring[] | null
Spoken languages.
-
dietaryPreferencestring | null
Dietary preference. One of: No preference, Pescetarian, Vegetarian, Vegan, Halal, Jain, Kosher, Diabetic.
-
foodAllergiesstring[]
A list of food allergies.
-
addressstring | null
Street address component of the person’s home address.
-
citystring | null
City component of the persons home address.
-
statestring | null
Optional state component of the persons home address.
-
postcodestring | null
Postcode component of the persons home address.
-
countryCodestring | null
Country code in in ISO 3166-2 format, e.g. GB for United Kingdom.
-
biostring | null
An optional description about the person.
-
linkedInstring | null
LinkedIn handle
-
twitterstring | null
Twitter handle
-
githubstring | null
GitHub handle
-
employmentStartDatedate
Employment start date.
-
firstWorkingDaydate
The first day at work. Defaults to
employmentStartDateif not specified. -
employmentEndDatedate | null
Employment end date. If this date is in the past, this employee is considered to be offboarded and inactive.
-
lastWorkingDaydate | null
The last day at work. Defaults to
employmentEndDateif not specified. -
probationEndDatedate | null
Probation end date.
-
workingDaysobject[] | null
A list of days worked by the employee.
-
workingDays.daystring
A day of the week. One of:
monday,tuesday,wednesday,thursday,friday,saturday,sunday, -
turnoverImpactstring | null
Turnover impact set for offboarded people. One of regrettable, non-regrettable or “not applicable”.
-
leavingReasonstring | null
Leaving reason set for offboarded people. One of dismissed, resigned, redundancy, contractEnded, other.
-
leavingNotestring | null
Leaving note set for offboarded people.
-
leavingFileIdstring | null
Leaving file id attached to offboarded people.
-
contractTypestring | null
The employment contract type. Commonly set to Full time, Part time, Contractor or Internship, but can be set to any value.
-
payrollProviderstring | null
The label or identifier of the payroll provider used to process payroll for this employee.
-
employeeIdstring | null
Employee ID as used by the company.
-
taxIdstring | null
The local tax ID frequently used for payroll purposes. For example, National Insurance Number in UK or Social Security Number in US.
-
taxCodestring | null
The local tax code / tax number frequently used for payroll purposes.
-
locationIdstring
The ID of the location this person works at. It can be either the ID of a location or the string literal
remote, in which case it indicates this person works remotely and the working location can be found in theremoteCity,remoteRegionCodeandremoteCountryCodefields. -
remoteCitystring | null
When
locationIdis set to remote, this indicates the city that this person works in. -
remoteCountryCodestring | null
When
locationIdis set to remote, this indicates the country that this person works in. Country code in in ISO 3166-2 format, e.g. GB for United Kingdom. -
timeAwayApprovalFlowIdstring
The Id of the time away approval flow this person works under.
-
spaceIdstring
ID of the Space this person belongs to.
-
teamsobject[]
A list of teams. Often used for noting the cross functional team(s) the person is part of. Maximum of 12 items.
-
teams.namestring required
Name of the team
-
statusstring
One of
active,offboardedornewHire. -
isWorkEmailHiddenboolean
If true, work email of this person will be visible to admins and their managers.
-
calendarFeedTokenstring
The calendar feed access token used in Calendar Feed URL. Only available to requesting user’s account. Set to
resetto reset the value of the token. -
seenDocumentsAtdate-time
The last time the person has looked at their personal documents.
-
publicHolidayCalendarIdstring | null
The ID of the public holiday calendar this person uses, can be a country code, a country-region code or a regular id.
Returns
Returns the person if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/people/:idcurl https://app.humaans.io/api/people/VMB1yzL5uL8VvNNCJc9rykJz \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "VMB1yzL5uL8VvNNCJc9rykJz",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"spaceId": "z9KCj9O97FC2QtHhlB02Njnx",
"firstName": "Kelsey",
"middleName": null,
"lastName": "Wicks",
"preferredName": null,
"email": "kelsey@acme.com",
"locationId": "FnAjNOIyLRsmZGRohZsHApiE",
"remoteCity": null,
"remoteRegionCode": null,
"remoteCountryCode": null,
"remoteTimezone": null,
"personalEmail": "kwicks@example.com",
"phoneNumber": "+4479460001",
"formattedPhoneNumber": "+44 7946 0001",
"personalPhoneNumber": null,
"formattedPersonalPhoneNumber": null,
"gender": "Female",
"birthday": "1989-07-28",
"profilePhotoId": "Hgi5auXaKsjn2MjuYo1PDk3W",
"profilePhoto": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"nationality": "British",
"nationalities": [
"British"
],
"spokenLanguages": [
"English"
],
"dietaryPreference": "Pescetarian",
"foodAllergies": [
"Peanuts"
],
"address": "58 Stroude Road",
"city": "Siddington",
"state": null,
"postcode": "SK11 1EN",
"countryCode": "GB",
"country": "United Kingdom",
"bio": "All about that filter coffee.",
"linkedIn": null,
"twitter": null,
"github": null,
"employmentStartDate": "2018-03-10",
"firstWorkingDay": "2018-03-10",
"employmentEndDate": null,
"lastWorkingDay": "2018-03-10",
"probationEndDate": null,
"turnoverImpact": null,
"isManager": true,
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
},
{
"day": "wednesday"
},
{
"day": "thursday"
},
{
"day": "friday"
}
],
"publicHolidayCalendarId": "ES-MD",
"leavingReason": null,
"leavingNote": null,
"leavingFileId": null,
"contractType": "Full time",
"employeeId": null,
"taxId": "QQ123456C",
"taxCode": "123456C",
"teams": [
{
"name": "Moonshot"
},
{
"name": "Growth Pod"
}
],
"status": "active",
"isVerified": true,
"isWorkEmailHidden": false,
"calendarFeedToken": "bb6LCUqG4BAOZWKXQQB9a8H9",
"role": "user",
"seenDocumentsAt": "2020-02-21T17:09:29.290Z",
"source": null,
"sourceId": null,
"timezone": "Europe/London",
"payrollProvider": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a person
Permanently deletes a person. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/people/:idcurl https://app.humaans.io/api/people/VMB1yzL5uL8VvNNCJc9rykJz \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "VMB1yzL5uL8VvNNCJc9rykJz",
"deleted": true
}Performance instances Preview
An object representing a specific person’s review packet in a performance cycle. Each instance tracks the release status and other details for an individual employee within a performance cycle.
GET /api/performance-cycle-instancesGET /api/performance-cycle-instances/:idperformance:readPerformance instance object
Attributes
-
idstring
Unique identifier for the object.
-
performanceCycleIdstring
The ID of the performance cycle this instance belongs to.
-
personIdstring
ID of the person that this object is associated to.
-
releasedAtdate-time
The time at which the performance cycle instance was released. Null if not yet released.
-
releasedBystring
The ID of the person who released the performance cycle instance.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "0I5qP2OqcopXEPRv3qz3LVXP",
"performanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"releasedAt": "2026-03-01T12:00:00.000Z",
"releasedBy": "T7uqPFK7am4lFTZm39AmNuBQ",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all performance instances
Returns a list of performance instances.
Parameters
-
performanceCycleIdstring · $eq $ne $in $nin
The ID of the performance cycle this instance belongs to.
-
performanceCycleStatusstring · $eq $ne $in $nin at most one of status or performanceCycleStatus
Filter by the status of the parent performance cycle. One of
draft,upcoming,active,completed,cancelled. -
personIdstring · $eq $ne $in $nin
The person to filter queries by.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
performance instances. The response skips the first $skip results. Each entry is a
separate performance instance object. If no performance instances are available,
data is empty.
GET /api/performance-cycle-instancescurl https://app.humaans.io/api/performance-cycle-instances \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "0I5qP2OqcopXEPRv3qz3LVXP",
"performanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"releasedAt": "2026-03-01T12:00:00.000Z",
"releasedBy": "T7uqPFK7am4lFTZm39AmNuBQ",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a performance instance
Retrieves the performance instance with the given ID.
Parameters
- No parameters
Returns
Returns a performance instance object if a valid identifier was provided.
GET /api/performance-cycle-instances/:idcurl https://app.humaans.io/api/performance-cycle-instances/0I5qP2OqcopXEPRv3qz3LVXP \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "0I5qP2OqcopXEPRv3qz3LVXP",
"performanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"releasedAt": "2026-03-01T12:00:00.000Z",
"releasedBy": "T7uqPFK7am4lFTZm39AmNuBQ",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Performance templates Preview
An object representing a review template within a performance cycle. Each template defines the form fields and configuration for a specific type of review.
GET /api/performance-cycle-review-templatesGET /api/performance-cycle-review-templates/:idPerformance template object
Attributes
-
idstring
Unique identifier for the object.
-
performanceCycleIdstring
The ID of the performance cycle this review template belongs to.
-
titlestring
The title of the review template.
-
templateTypestring
The type of review this template is for. One of
peer,self,upward,manager. -
fieldsobject[]
An array of form field objects that define the structure of the review. Each field has a
typeproperty determining its kind. One oftext(short text input),longText(longer text input),textArea(rich text editor),select(single choice from a list),multiSelect(multiple choices from a list),rating(rating scale with predefined choices),scale(numeric scale with a range),heading(section heading),divider(visual separator). Each field has anidthat uniquely identifies it within the template. These IDs are used as keys in theresponsesobject of performance reviews. Input fields supportlabel,hint,placeholder,required, andhideFromRevieweeproperties. A template may contain at most oneratingfield. -
fields.idstring
Unique identifier for this field. Used as the key in the responses object of performance reviews.
-
fields.typestring
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "PJIqTfdojEAWs8M4shG1x4eJ",
"performanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"title": "Manager Review",
"templateType": "manager",
"fields": [
{
"id": "nB3xOmaAl0hx7FkGi2OBSqEp",
"type": "heading",
"content": "Performance Assessment"
},
{
"id": "qR9yPzCdk2jv8WnHt5KDUfXm",
"type": "longText",
"label": "What are this person's key strengths?",
"required": true,
"hideFromReviewee": true
},
{
"id": "xT4wLmNpR8kv2QjHs6YBUcAe",
"type": "multiSelect",
"label": "Which company values does this person demonstrate?",
"choices": [
"Ownership",
"Collaboration",
"Innovation",
"Integrity"
],
"required": false
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all performance templates
Returns a list of performance templates.
Parameters
-
performanceCycleIdstring
The ID of the performance cycle this review template belongs to.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter performance cycle review templates by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter performance cycle review templates by updated at date.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
performance templates. The response skips the first $skip results. Each entry is a
separate performance template object. If no performance templates are available,
data is empty.
GET /api/performance-cycle-review-templatescurl https://app.humaans.io/api/performance-cycle-review-templates \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "PJIqTfdojEAWs8M4shG1x4eJ",
"performanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"title": "Manager Review",
"templateType": "manager",
"fields": [
{
"id": "nB3xOmaAl0hx7FkGi2OBSqEp",
"type": "heading",
"content": "Performance Assessment"
},
{
"id": "qR9yPzCdk2jv8WnHt5KDUfXm",
"type": "longText",
"label": "What are this person's key strengths?",
"required": true,
"hideFromReviewee": true
},
{
"id": "xT4wLmNpR8kv2QjHs6YBUcAe",
"type": "multiSelect",
"label": "Which company values does this person demonstrate?",
"choices": [
"Ownership",
"Collaboration",
"Innovation",
"Integrity"
],
"required": false
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a performance template
Retrieves the performance template with the given ID.
Parameters
- No parameters
Returns
Returns a performance template object if a valid identifier was provided.
GET /api/performance-cycle-review-templates/:idcurl https://app.humaans.io/api/performance-cycle-review-templates/PJIqTfdojEAWs8M4shG1x4eJ \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "PJIqTfdojEAWs8M4shG1x4eJ",
"performanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"title": "Manager Review",
"templateType": "manager",
"fields": [
{
"id": "nB3xOmaAl0hx7FkGi2OBSqEp",
"type": "heading",
"content": "Performance Assessment"
},
{
"id": "qR9yPzCdk2jv8WnHt5KDUfXm",
"type": "longText",
"label": "What are this person's key strengths?",
"required": true,
"hideFromReviewee": true
},
{
"id": "xT4wLmNpR8kv2QjHs6YBUcAe",
"type": "multiSelect",
"label": "Which company values does this person demonstrate?",
"choices": [
"Ownership",
"Collaboration",
"Innovation",
"Integrity"
],
"required": false
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Performance reviews Preview
An object representing a single review within a performance cycle. Each review captures a reviewer’s responses about a subject, the review type, and submission status.
GET /api/performance-cycle-reviewsGET /api/performance-cycle-reviews/:idperformance:readPerformance review object
Attributes
-
idstring
Unique identifier for the object.
-
performanceCycleInstanceIdstring
The ID of the performance cycle instance this review belongs to.
-
subjectIdstring
The ID of the person being reviewed.
-
reviewerIdstring
The ID of the person conducting the review.
-
reviewTypestring
The type of review. One of
peer,self,upward,manager. -
responsesobject
An object containing the responses to the review form fields, keyed by the field
idfrom the corresponding performance template field. -
submittedAtdate-time
The time at which this review was submitted. Null if not yet submitted or if changes have been requested.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "aegY8UfWbpDonPFKhx6Z027o",
"performanceCycleInstanceId": "IL19tIwMP2Hs7cpNHFOzNMeX",
"subjectId": "wYW0B4dIbzyjm4FlJPv3cOS4",
"reviewerId": "T7uqPFK7am4lFTZm39AmNuBQ",
"reviewType": "manager",
"responses": {
"nB3xOmaAl0hx7FkGi2OBSqEp": "Great team player",
"qR9yPzCdk2jv8WnHt5KDUfXm": {
"value": 4,
"furtherComments": "Consistently exceeds expectations"
}
},
"submittedAt": "2026-03-15T10:30:00.000Z",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all performance reviews
Returns a list of performance reviews.
Parameters
-
performanceCycleInstanceIdstring · $eq $ne $in $nin
The ID of the performance cycle instance this review belongs to.
-
performanceCycleStatusstring · $eq $ne $in $nin
Filter by the status of the parent performance cycle. One of
draft,upcoming,active,completed,cancelled. -
subjectIdstring · $eq $ne $in $nin
The ID of the person being reviewed.
-
submittedAtdate-time · $ne
The time at which this review was submitted. Null if not yet submitted or if changes have been requested.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter performance cycle reviews by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter performance cycle reviews by updated at date.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
performance reviews. The response skips the first $skip results. Each entry is a
separate performance review object. If no performance reviews are available,
data is empty.
GET /api/performance-cycle-reviewscurl https://app.humaans.io/api/performance-cycle-reviews \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "aegY8UfWbpDonPFKhx6Z027o",
"performanceCycleInstanceId": "IL19tIwMP2Hs7cpNHFOzNMeX",
"subjectId": "wYW0B4dIbzyjm4FlJPv3cOS4",
"reviewerId": "T7uqPFK7am4lFTZm39AmNuBQ",
"reviewType": "manager",
"responses": {
"nB3xOmaAl0hx7FkGi2OBSqEp": "Great team player",
"qR9yPzCdk2jv8WnHt5KDUfXm": {
"value": 4,
"furtherComments": "Consistently exceeds expectations"
}
},
"submittedAt": "2026-03-15T10:30:00.000Z",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a performance review
Retrieves the performance review with the given ID.
Parameters
- No parameters
Returns
Returns a performance review object if a valid identifier was provided.
GET /api/performance-cycle-reviews/:idcurl https://app.humaans.io/api/performance-cycle-reviews/aegY8UfWbpDonPFKhx6Z027o \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "aegY8UfWbpDonPFKhx6Z027o",
"performanceCycleInstanceId": "IL19tIwMP2Hs7cpNHFOzNMeX",
"subjectId": "wYW0B4dIbzyjm4FlJPv3cOS4",
"reviewerId": "T7uqPFK7am4lFTZm39AmNuBQ",
"reviewType": "manager",
"responses": {
"nB3xOmaAl0hx7FkGi2OBSqEp": "Great team player",
"qR9yPzCdk2jv8WnHt5KDUfXm": {
"value": 4,
"furtherComments": "Consistently exceeds expectations"
}
},
"submittedAt": "2026-03-15T10:30:00.000Z",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Performance cycles Preview
An object representing a performance review cycle. Performance cycles define the schedule, scope, and configuration for running performance reviews across the company.
GET /api/performance-cyclesGET /api/performance-cycles/:idperformance:readPerformance cycle object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
titlestring
The title of the performance cycle.
-
statusstring
The current status of the performance cycle. One of
draft,upcoming,active,completed,cancelled. -
previousPerformanceCycleIdstring
ID of the previous performance cycle (if the cycle is on a recurring schedule).
-
completedAtdate-time
Time at which the performance cycle was completed.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "vxRe1WOEJP2KxKCBBaad9NFM",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"title": "Q1 2026 Performance Review",
"status": "active",
"previousPerformanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"completedAt": "2026-04-01T12:00:00.000Z",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all performance cycles
Returns a list of performance cycles.
Parameters
-
statusstring · $eq $ne $in $nin
The current status of the performance cycle. One of
draft,upcoming,active,completed,cancelled. -
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
performance cycles. The response skips the first $skip results. Each entry is a
separate performance cycle object. If no performance cycles are available,
data is empty.
GET /api/performance-cyclescurl https://app.humaans.io/api/performance-cycles \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "vxRe1WOEJP2KxKCBBaad9NFM",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"title": "Q1 2026 Performance Review",
"status": "active",
"previousPerformanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"completedAt": "2026-04-01T12:00:00.000Z",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a performance cycle
Retrieves the performance cycle with the given ID.
Parameters
- No parameters
Returns
Returns a performance cycle object if a valid identifier was provided.
GET /api/performance-cycles/:idcurl https://app.humaans.io/api/performance-cycles/vxRe1WOEJP2KxKCBBaad9NFM \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "vxRe1WOEJP2KxKCBBaad9NFM",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"title": "Q1 2026 Performance Review",
"status": "active",
"previousPerformanceCycleId": "vxRe1WOEJP2KxKCBBaad9NFM",
"completedAt": "2026-04-01T12:00:00.000Z",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Public holiday calendar days
A resource representing a public holiday for a particular public holiday calendar day
GET /api/public-holiday-calendar-days GET /api/public-holiday-calendar-days/:id POST /api/public-holiday-calendar-daysPATCH /api/public-holiday-calendar-days/:idpublic:readPublic holiday calendar day object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
publicHolidayCalendarIdstring
The ID of the public holiday calendar this public holiday is part of.
-
namestring
The name of the public holiday.
-
datedate
The date of the public holiday.
-
enabledboolean
The toggle state of the public holiday
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "MVvOIW2o1NLLtYga0REVbeeK",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Christmas Day",
"date": "2022-12-25",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all Public holiday calendar days
List all public holiday calendar days
Parameters
-
date
The date of the public holiday.
-
enabled
The toggle state of the public holiday
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
publicHolidayCalendarIdstring · $eq $ne $in $nin
Filter by the public holiday calendar ID.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter public holiday calendar days by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
Public holiday calendar days. The response skips the first $skip results. Each entry is a
separate Public holiday calendar day object. If no Public holiday calendar days are available,
data is empty.
GET /api/public-holiday-calendar-dayscurl https://app.humaans.io/api/public-holiday-calendar-days \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "MVvOIW2o1NLLtYga0REVbeeK",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Christmas Day",
"date": "2022-12-25",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a Public holiday calendar day
Get a specific public holiday calendar day
Parameters
- No parameters
Returns
Returns a Public holiday calendar day object if a valid identifier was provided.
GET /api/public-holiday-calendar-days/:idcurl https://app.humaans.io/api/public-holiday-calendar-days/MVvOIW2o1NLLtYga0REVbeeK \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "MVvOIW2o1NLLtYga0REVbeeK",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Christmas Day",
"date": "2022-12-25",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a Public holiday calendar day
Create a custom public holiday calendar day
Parameters
-
namestring required
The name of the public holiday.
-
datedate required
The date of the public holiday.
-
enabledboolean
The toggle state of the public holiday
-
publicHolidayCalendarIdstring required
The ID of the public holiday calendar this public holiday is part of.
Returns
Returns a Public holiday calendar day if the call succeeded. The call returns an error if parameters are invalid.
POST /api/public-holiday-calendar-dayscurl https://app.humaans.io/api/public-holiday-calendar-days \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Christmas Day","date":"2022-12-25"}'
{
"id": "MVvOIW2o1NLLtYga0REVbeeK",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Christmas Day",
"date": "2022-12-25",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a Public holiday calendar day
Update a public holiday calendar day
Parameters
-
namestring
The name of the public holiday.
-
datedate
The date of the public holiday.
-
enabledboolean
The toggle state of the public holiday
-
publicHolidayCalendarIdstring
The ID of the public holiday calendar this public holiday is part of.
Returns
Returns the Public holiday calendar day if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/public-holiday-calendar-days/:idcurl https://app.humaans.io/api/public-holiday-calendar-days/MVvOIW2o1NLLtYga0REVbeeK \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "MVvOIW2o1NLLtYga0REVbeeK",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Christmas Day",
"date": "2022-12-25",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Public holiday calendars
A resource representing a public holiday calendar for a specific country or in some cases a region of a country.
GET /api/public-holiday-calendarspublic:readPublic holiday calendar object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
namestring
The name of the calendar, combination of country and region.
-
countryCodestring
The country code.
-
countrystring
The country label.
-
regionCodestring
The region code.
-
regionstring
The country label.
-
dayCountnumber
The number of public holidays in this calendar in the current calendar year.
-
sourcePublicHolidayCalendarIdstring
The ID of the calendar used to initially populate this calendar
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "J2zFVTiH0fduJ0p5639GNRBh",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "France",
"countryCode": "FR",
"country": "France",
"regionCode": null,
"region": null,
"dayCount": 11,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all public holiday calendars
List all public holiday calendars
Parameters
-
idstring · $eq $ne $in $nin
Filter by the public holiday calendar ID.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter public holiday calendars by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
public holiday calendars. The response skips the first $skip results. Each entry is a
separate public holiday calendar object. If no public holiday calendars are available,
data is empty.
GET /api/public-holiday-calendarscurl https://app.humaans.io/api/public-holiday-calendars \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "J2zFVTiH0fduJ0p5639GNRBh",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "France",
"countryCode": "FR",
"country": "France",
"regionCode": null,
"region": null,
"dayCount": 11,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Public holidays
An object representing a public holiday.
GET /api/public-holidayspublic:readPublic holiday object
Attributes
-
idstring
Unique identifier for the object.
-
datestring
The date of the public holiday.
-
namestring
The name of the public holiday.
-
publicHolidayCalendarIdstring
The ID of the public holiday calendar this public holiday belongs to.
{
"id": "nk1kio8XMzUXY5eplJq7PrbI",
"date": "2020-01-01",
"name": "New year"
}List all public holidays
Returns a list of public holidays.
Parameters
-
datedate · $eq $ne $in $nin $gt $lt $gte $lte required
Filter holidays by date.
-
publicHolidayCalendarIdstring · $eq $ne $in $nin required
Filter by the public holiday calendar ID.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
public holidays. The response skips the first $skip results. Each entry is a
separate public holiday object. If no public holidays are available,
data is empty.
GET /api/public-holidayscurl 'https://app.humaans.io/api/public-holidays?publicHolidayCalendarId=DE-BE&date[$gte]=2020-01-01' \
-g \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "nk1kio8XMzUXY5eplJq7PrbI",
"date": "2020-01-01",
"name": "New year"
}
]
}Spaces
An object representing a space. Every user belongs to a single space.
GET /api/spaces GET /api/spaces/:id POST /api/spaces PATCH /api/spaces/:idDELETE /api/spaces/:idpublic:readSpace object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
namestring
-
isDefaultboolean
-
logoobject
When a logo file is uploaded, it gets resized to several predefined sizes and uploaded to a CDN. The URLs of those files are provided in this object. Note, that you can still access the original un-resized file via
api/files. -
logo.idstring
Unique identifier for the object.
-
logo.filenamestring
-
logo.variantsobject
A map of the predefined logo sizes. Some used in 2x displays, some used in 3x displays.
-
logo.variants.64string
URL of one of the predefined 2x logo sizes.
-
logo.variants.96string
URL of one of the predefined 3x logo sizes.
-
logo.variants.104string
URL of one of the predefined 2x logo sizes.
-
logo.variants.136string
URL of one of the predefined 2x logo sizes.
-
logo.variants.156string
URL of one of the predefined 3x logo sizes.
-
logo.variants.204string
URL of one of the predefined 3x logo sizes.
-
logo.variants.320string
URL of one of the predefined 2x logo sizes.
-
logo.variants.480string
URL of one of the predefined 3x logo sizes.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "kxXqtnaI6J6203RFuzrfdB7C",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Contractors",
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all spaces
Returns a list of spaces.
Parameters
-
companyIdstring · $eq $ne $in $nin
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter spaces by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
spaces. The response skips the first $skip results. Each entry is a
separate space object. If no spaces are available,
data is empty.
GET /api/spacescurl https://app.humaans.io/api/spaces \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "kxXqtnaI6J6203RFuzrfdB7C",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Contractors",
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a space
Retrieves the space with the given ID.
Parameters
- No parameters
Returns
Returns a space object if a valid identifier was provided.
GET /api/spaces/:idcurl https://app.humaans.io/api/spaces/kxXqtnaI6J6203RFuzrfdB7C \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "kxXqtnaI6J6203RFuzrfdB7C",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Contractors",
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a space
Parameters
-
namestring required
Returns
Returns a space if the call succeeded. The call returns an error if parameters are invalid.
POST /api/spacescurl https://app.humaans.io/api/spaces \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Contractors"}'
{
"id": "kxXqtnaI6J6203RFuzrfdB7C",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Contractors",
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a space
Parameters
-
namestring
Returns
Returns the space if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/spaces/:idcurl https://app.humaans.io/api/spaces/kxXqtnaI6J6203RFuzrfdB7C \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"name":"Contractors"}'
{
"id": "kxXqtnaI6J6203RFuzrfdB7C",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Contractors",
"logo": {
"id": "Hgi5auXaKsjn2MjuYo1PDk3W",
"filename": "image-file.jpg",
"variants": {
"64": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@64.jpg",
"96": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@96.jpg",
"104": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@104.jpg",
"136": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@136.jpg",
"156": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@156.jpg",
"204": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@204.jpg",
"320": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@320.jpg",
"480": "https://storage.googleapis.com/humaans-public-prd/Hgi5auXaKsjn2MjuYo1PDk3W@480.jpg"
}
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a space
Permanently deletes a space. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/spaces/:idcurl https://app.humaans.io/api/spaces/kxXqtnaI6J6203RFuzrfdB7C \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "kxXqtnaI6J6203RFuzrfdB7C",
"deleted": true
}Time away
An object representing a time away entry of an employee. Time away can be a time off entry, e.g. paid time off, sick leave, paternity leave, etc. Or it can be a working away entry, e.g. working from home, travelling for work, etc.
GET /api/time-away GET /api/time-away/:id POST /api/time-away PATCH /api/time-away/:idDELETE /api/time-away/:idprivate:readpublic:readprivate:writeTime away object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
startTimestring
If defined, specifies the start time for the time away booking in HH:MM:SS format. Applicable for same day bookings
-
endTimestring
If defined, specifies the end time for the time away booking in HH:MM:SS format. Applicable for same day bookings
-
startDatedate
The first date of the time away entry (inclusive).
-
startPeriodstring
Indicates if the first date of the time away entry was taken in full or as half day. One of:
full(when taking full day),am(when taking morning off) orpm(when taking afternoon off). Defaults tofull. -
endDatedate
The last date of the time away entry (inclusive).
-
endPeriodstring
Indicates if the last date of the time away entry was taken in full or as half day. One of:
full(when taking full day) oram(when taking morning off only). IfstartDateandendDateare the same, this should be the same asstartPeriod. Defaults tofull. -
timeAwayTypeIdstring
ID of the Time away type this entry is attached to.
-
namestring
A human readable label of the time away entry type.
-
isTimeOffboolean
trueif the type is one of the time off types, as opposed to one of the working away types. -
workingFromLocationIdstring
When
type(or reason) of the time away entry isworkingFromAnotherLocationthis field indicates the id of the location the person was working from. -
notestring
An optional note about the time off entry. Only visible to the employee, their manager and admins.
-
breakdownobject[]
A day by day breakdown of the time away entry. Useful for inspecting which days count towards the balance.
-
breakdown.datedate
The date.
-
breakdown.periodstring | number
One of:
full,am,pm. -
breakdown.hoursnumber
-
breakdown.weekendboolean
True if the day is on a non-working day as defined by
person.workingDays. -
breakdown.holidayboolean
True if the day is a public holiday.
-
breakdown.fteDaynumber
Amount of day accounted for FTE.
-
daysnumber
The number of total days this entry spans, taking into account half days, weekends and holidays based on the policy configuration.
-
requestStatusstring
If time away approvals are required, one of
pending,approved,declined. Will beapprovedif time away approvals are not required. -
requestedBystring
The ID of the person that made this request.
-
reviewedBystring
The ID of the person that reviewed this request.
-
reviewedAtdate-time
The date and time when this request was reviewed.
-
reviewNotestring
A note to accompany a time away review.
-
publicHolidayCalendarIdstring
The public holiday calendar ID that was in use when creating this time away entry.
-
workingDaysobject[]
The person’s working days schedule at the time of booking time away
-
workingDays.daystring
A day of the week.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
timezonestring
The timezone of the personId when the booking was made
{
"id": "YLlqHE4DLvGtFJ7L2qro6bTF",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "2020-01-24",
"startPeriod": "full",
"endDate": "2020-01-29",
"endPeriod": "am",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"name": "Paid time off",
"isTimeOff": true,
"workingFromLocationId": null,
"note": "🏝 Trip to New Zealand",
"breakdown": [
{
"date": "2020-01-24",
"period": "full"
},
{
"date": "2020-01-25",
"period": "full",
"weekend": true
},
{
"date": "2020-01-26",
"period": "full",
"weekend": true,
"holiday": true
},
{
"date": "2020-01-27",
"period": "full",
"holiday": true
},
{
"date": "2020-01-28",
"period": "full"
},
{
"date": "2020-01-29",
"period": "am"
}
],
"days": 2.5,
"requestStatus": "declined",
"requestedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-01-20",
"reviewNote": "Dates clash with product launch.",
"publicHolidayCalendarId": "AU-NSW",
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"timezone": "America/Los_Angeles"
}List all time away
Returns a list of time away entries.
The time away entries can be filtered using more complex filter conditions. Refer to Filtering documentation for more details on usage.
When syncing time away entries to another system, it can be useful to get all entries that were created or updated since a certain date. You can use the includeDeleted=true parameter to include deleted entries.
Include deleted entries, the shape of deleted items is { id, personId, deletedAt }:
GET /api/time-away?includeDeleted=true
Fetch only deleted entries:
GET /api/time-away?includeDeleted=true&deletedAt[$ne]=null
Fetch entries created or updated since the specified date:
GET /api/time-away?updatedAt[$gte]=2025-02-01
Parameters
-
endDatedate · $gt $gte $lt $lte
Filter by end date.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $in
The person to filter queries by.
-
personStatusstring · $in
The person status to filter queries by.
-
requestStatusstring · $in
Filter by request status. Useful when time away approvals are enabled.
-
startDatedate · $gt $gte $lt $lte
Filter by start date.
-
timeAwayTypeIdstring
Filter by the time away type
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter by createdAt.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$orobject[]
Filter results by multiple criteria.
-
$or.createdAtdate | date-time · $gt $gte $lt $lte
Filter by createdAt.
-
$or.endDatedate · $gt $gte $lt $lte
Filter by end date.
-
$or.personIdstring · $in
The person to filter queries by.
-
$or.personStatusstring · $in
The person status to filter queries by.
-
$or.requestStatusstring · $in
Filter by request status. Useful when time away approvals are enabled.
-
$or.startDatedate · $gt $gte $lt $lte
Filter by start date.
-
$or.timeAwayTypeIdstring
Filter by the time away type
-
$or.typestring
Filter by time away type — one of the default type ids (
workingFromAnotherLocation,workingFromHome,training,travellingForWork,pto,compassionate,emergency,juryDuty,mentalHealth,parental,sabbatical,sick,toil,unpaid,volunteering) or a company-specific time away type id. Unknown values match nothing. -
$sortobject
-
$sort.createdAtnumber
-
$sort.deletedAtnumber
-
$sort.endDatenumber
-
$sort.startDatenumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
time away. The response skips the first $skip results. Each entry is a
separate time away object. If no time away are available,
data is empty.
GET /api/time-awaycurl https://app.humaans.io/api/time-away \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "YLlqHE4DLvGtFJ7L2qro6bTF",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "2020-01-24",
"startPeriod": "full",
"endDate": "2020-01-29",
"endPeriod": "am",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"name": "Paid time off",
"isTimeOff": true,
"workingFromLocationId": null,
"note": "🏝 Trip to New Zealand",
"breakdown": [
{
"date": "2020-01-24",
"period": "full"
},
{
"date": "2020-01-25",
"period": "full",
"weekend": true
},
{
"date": "2020-01-26",
"period": "full",
"weekend": true,
"holiday": true
},
{
"date": "2020-01-27",
"period": "full",
"holiday": true
},
{
"date": "2020-01-28",
"period": "full"
},
{
"date": "2020-01-29",
"period": "am"
}
],
"days": 2.5,
"requestStatus": "declined",
"requestedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-01-20",
"reviewNote": "Dates clash with product launch.",
"publicHolidayCalendarId": "AU-NSW",
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"timezone": "America/Los_Angeles"
}
]
}Retrieve a time away
Retrieves the time away with the given ID.
Parameters
- No parameters
Returns
Returns a time away object if a valid identifier was provided.
GET /api/time-away/:idcurl https://app.humaans.io/api/time-away/YLlqHE4DLvGtFJ7L2qro6bTF \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "YLlqHE4DLvGtFJ7L2qro6bTF",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "2020-01-24",
"startPeriod": "full",
"endDate": "2020-01-29",
"endPeriod": "am",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"name": "Paid time off",
"isTimeOff": true,
"workingFromLocationId": null,
"note": "🏝 Trip to New Zealand",
"breakdown": [
{
"date": "2020-01-24",
"period": "full"
},
{
"date": "2020-01-25",
"period": "full",
"weekend": true
},
{
"date": "2020-01-26",
"period": "full",
"weekend": true,
"holiday": true
},
{
"date": "2020-01-27",
"period": "full",
"holiday": true
},
{
"date": "2020-01-28",
"period": "full"
},
{
"date": "2020-01-29",
"period": "am"
}
],
"days": 2.5,
"requestStatus": "declined",
"requestedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-01-20",
"reviewNote": "Dates clash with product launch.",
"publicHolidayCalendarId": "AU-NSW",
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"timezone": "America/Los_Angeles"
}Create a time away
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
startTimestring | null at most one of startTime or startPeriod
If defined, specifies the start time for the time away booking in HH:MM:SS format. Applicable for same day bookings
-
endTimestring | null at most one of endTime or startPeriod
If defined, specifies the end time for the time away booking in HH:MM:SS format. Applicable for same day bookings
-
startDatedate required
The first date of the time away entry (inclusive).
-
endDatedate required
The last date of the time away entry (inclusive).
-
startPeriodstring | null at most one of startPeriod or breakdown
Indicates if the first date of the time away entry was taken in full or as half day. One of:
full(when taking full day),am(when taking morning off) orpm(when taking afternoon off). Defaults tofull. -
endPeriodstring | null at most one of startTime or endPeriod
Indicates if the last date of the time away entry was taken in full or as half day. One of:
full(when taking full day) oram(when taking morning off only). IfstartDateandendDateare the same, this should be the same asstartPeriod. Defaults tofull. -
notestring | null
An optional note about the time off entry. Only visible to the employee, their manager and admins.
-
workingFromLocationIdstring | null
When
type(or reason) of the time away entry isworkingFromAnotherLocationthis field indicates the id of the location the person was working from. -
timeAwayTypeIdstring at most one of type or timeAwayTypeId
ID of the Time away type this entry is attached to.
-
requestStatusstring
If time away approvals are required, one of
pending,approved,declined. Will beapprovedif time away approvals are not required. -
reviewNotestring
A note to accompany a time away review.
Returns
Returns a time away if the call succeeded. The call returns an error if parameters are invalid.
POST /api/time-awaycurl https://app.humaans.io/api/time-away \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"note":"✈️ Trip to New Zealand"}'
{
"id": "YLlqHE4DLvGtFJ7L2qro6bTF",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "2020-01-24",
"startPeriod": "full",
"endDate": "2020-01-29",
"endPeriod": "am",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"name": "Paid time off",
"isTimeOff": true,
"workingFromLocationId": null,
"note": "✈️ Trip to New Zealand",
"breakdown": [
{
"date": "2020-01-24",
"period": "full"
},
{
"date": "2020-01-25",
"period": "full",
"weekend": true
},
{
"date": "2020-01-26",
"period": "full",
"weekend": true,
"holiday": true
},
{
"date": "2020-01-27",
"period": "full",
"holiday": true
},
{
"date": "2020-01-28",
"period": "full"
},
{
"date": "2020-01-29",
"period": "am"
}
],
"days": 2.5,
"requestStatus": "declined",
"requestedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-01-20",
"reviewNote": "Dates clash with product launch.",
"publicHolidayCalendarId": "AU-NSW",
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"timezone": "America/Los_Angeles"
}Update a time away
Parameters
-
startTimestring | null at most one of startTime or startPeriod
If defined, specifies the start time for the time away booking in HH:MM:SS format. Applicable for same day bookings
-
endTimestring | null at most one of endTime or startPeriod
If defined, specifies the end time for the time away booking in HH:MM:SS format. Applicable for same day bookings
-
startDatedate
The first date of the time away entry (inclusive).
-
endDatedate
The last date of the time away entry (inclusive).
-
startPeriodstring | null at most one of startPeriod or breakdown
Indicates if the first date of the time away entry was taken in full or as half day. One of:
full(when taking full day),am(when taking morning off) orpm(when taking afternoon off). Defaults tofull. -
endPeriodstring | null at most one of startTime or endPeriod
Indicates if the last date of the time away entry was taken in full or as half day. One of:
full(when taking full day) oram(when taking morning off only). IfstartDateandendDateare the same, this should be the same asstartPeriod. Defaults tofull. -
notestring | null
An optional note about the time off entry. Only visible to the employee, their manager and admins.
-
workingFromLocationIdstring | null
When
type(or reason) of the time away entry isworkingFromAnotherLocationthis field indicates the id of the location the person was working from. -
timeAwayTypeIdstring at most one of type or timeAwayTypeId
ID of the Time away type this entry is attached to.
-
requestStatusstring
If time away approvals are required, one of
pending,approved,declined. Will beapprovedif time away approvals are not required. -
reviewNotestring
A note to accompany a time away review.
Returns
Returns the time away if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/time-away/:idcurl https://app.humaans.io/api/time-away/YLlqHE4DLvGtFJ7L2qro6bTF \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"note":"✈️ Trip to New Zealand"}'
{
"id": "YLlqHE4DLvGtFJ7L2qro6bTF",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "2020-01-24",
"startPeriod": "full",
"endDate": "2020-01-29",
"endPeriod": "am",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"name": "Paid time off",
"isTimeOff": true,
"workingFromLocationId": null,
"note": "✈️ Trip to New Zealand",
"breakdown": [
{
"date": "2020-01-24",
"period": "full"
},
{
"date": "2020-01-25",
"period": "full",
"weekend": true
},
{
"date": "2020-01-26",
"period": "full",
"weekend": true,
"holiday": true
},
{
"date": "2020-01-27",
"period": "full",
"holiday": true
},
{
"date": "2020-01-28",
"period": "full"
},
{
"date": "2020-01-29",
"period": "am"
}
],
"days": 2.5,
"requestStatus": "declined",
"requestedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-01-20",
"reviewNote": "Dates clash with product launch.",
"publicHolidayCalendarId": "AU-NSW",
"workingDays": [
{
"day": "monday"
},
{
"day": "tuesday"
}
],
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z",
"timezone": "America/Los_Angeles"
}Delete a time away
Permanently deletes a time away. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/time-away/:idcurl https://app.humaans.io/api/time-away/YLlqHE4DLvGtFJ7L2qro6bTF \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "YLlqHE4DLvGtFJ7L2qro6bTF",
"deleted": true
}Time away adjustments
An object representing a time away adjustment. Adjustments are used
to add or remove days to the available time off balance. They are one off and are
applied in the time away period they fall in based on the date.
GET /api/time-away-adjustments GET /api/time-away-adjustments/:id POST /api/time-away-adjustments PATCH /api/time-away-adjustments/:idDELETE /api/time-away-adjustments/:idprivate:readprivate:writeTime away adjustment object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
datedate
The date when the adjustment was granted.
-
deltaAmountnumber
The time that should be added to the allowance. Negative number will reduce the allowance.
-
unitstring
The unit of the time away adjustment. Negative number will reduce the allowance.
-
reasonstring
A note describing the reason for this adjustment.
-
validUntildate
The date when the adjustment expires.
-
timeAwayTypeIdstring
ID of the Time away type this adjustment is attached to.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "BZJa63JpH4Bz25oM28zAbeoK",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-03-01",
"deltaAmount": 2,
"unit": "days",
"reason": "For working over the weekend.",
"validUntil": "2029-03-01",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all time away adjustments
Returns a list of time away adjustments.
Parameters
-
datedate · $eq $ne $in $nin $gt $lt $gte $lte
Filter by end date.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $in
The person to filter queries by.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.createdAtnumber
-
$sort.datenumber
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
time away adjustments. The response skips the first $skip results. Each entry is a
separate time away adjustment object. If no time away adjustments are available,
data is empty.
GET /api/time-away-adjustmentscurl https://app.humaans.io/api/time-away-adjustments \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "BZJa63JpH4Bz25oM28zAbeoK",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-03-01",
"deltaAmount": 2,
"unit": "days",
"reason": "For working over the weekend.",
"validUntil": "2029-03-01",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a time away adjustment
Retrieves the time away adjustment with the given ID.
Parameters
- No parameters
Returns
Returns a time away adjustment object if a valid identifier was provided.
GET /api/time-away-adjustments/:idcurl https://app.humaans.io/api/time-away-adjustments/BZJa63JpH4Bz25oM28zAbeoK \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "BZJa63JpH4Bz25oM28zAbeoK",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-03-01",
"deltaAmount": 2,
"unit": "days",
"reason": "For working over the weekend.",
"validUntil": "2029-03-01",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a time away adjustment
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
datedate required
The date when the adjustment was granted.
-
deltaAmountnumber
The time that should be added to the allowance. Negative number will reduce the allowance.
-
unitstring
The unit of the time away adjustment. Negative number will reduce the allowance.
-
reasonstring required
A note describing the reason for this adjustment.
-
validUntildate | null
The date when the adjustment expires.
-
timeAwayTypeIdstring required
ID of the Time away type this adjustment is attached to.
Returns
Returns a time away adjustment if the call succeeded. The call returns an error if parameters are invalid.
POST /api/time-away-adjustmentscurl https://app.humaans.io/api/time-away-adjustments \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","date":"2020-03-01","reason":"For working over the weekend.","timeAwayTypeId":"7xGMobpxPcVfP1UGGZm043C4"}'
{
"id": "BZJa63JpH4Bz25oM28zAbeoK",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-03-01",
"deltaAmount": 2,
"unit": "days",
"reason": "For working over the weekend.",
"validUntil": "2029-03-01",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a time away adjustment
Parameters
-
datedate
The date when the adjustment was granted.
-
deltaAmountnumber
The time that should be added to the allowance. Negative number will reduce the allowance.
-
unitstring
The unit of the time away adjustment. Negative number will reduce the allowance.
-
reasonstring
A note describing the reason for this adjustment.
-
validUntildate | null
The date when the adjustment expires.
-
timeAwayTypeIdstring
ID of the Time away type this adjustment is attached to.
Returns
Returns the time away adjustment if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/time-away-adjustments/:idcurl https://app.humaans.io/api/time-away-adjustments/BZJa63JpH4Bz25oM28zAbeoK \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "BZJa63JpH4Bz25oM28zAbeoK",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-03-01",
"deltaAmount": 2,
"unit": "days",
"reason": "For working over the weekend.",
"validUntil": "2029-03-01",
"timeAwayTypeId": "7xGMobpxPcVfP1UGGZm043C4",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a time away adjustment
Permanently deletes a time away adjustment. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/time-away-adjustments/:idcurl https://app.humaans.io/api/time-away-adjustments/BZJa63JpH4Bz25oM28zAbeoK \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "BZJa63JpH4Bz25oM28zAbeoK",
"deleted": true
}Time away allocations
An object representing the mapping between an employee and a time away policy.
To assign a specific time away policy to an employee an allocation with an effectiveDate
is created and linked to a person (personId) and a time away policy (timeAwayPolicyId).
Each person will often have only one allocation throughout their lifetime, but they can have
multiple consecutive allocations when the company changes its time off policy
or when the employee moves to a country, office or role with a different time off policy.
GET /api/time-away-allocations GET /api/time-away-allocations/:id POST /api/time-away-allocations PATCH /api/time-away-allocations/:idDELETE /api/time-away-allocations/:idprivate:readprivate:writeTime away allocation object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
typestring
The type of allocation. One of:
placeOfWork,specific,custom. Setting allocationtypetoplaceOfWorkwill apply the time away policy based on the place of work of the employee. Setting it tospecificrequires providing thetimeAwayPolicyIdthat should be applied. Setting tocustomrequires passing policy object in thetimeAwayPolicyfield. -
effectiveDatedate
The first day when the allocation is in effect.
-
timeAwayPolicyIdstring
The ID of the time away policy used by this allocation.
-
timeAwayPolicytime away policy
The time away policy used by this allocation. When the
typeof the allocation iscustom, these attributes are writable and can be used to create custom inline per person policies. In case thetypeisplaceOfWorkorspecific- only thetimeAwayPolicyIdis writable and must be used to assign an existing time away policy. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "MfQQ2fWdXGD3hvZKrxm6zWE0",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-01",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all time away allocations
Returns a list of time away allocations.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
isCurrentboolean
Return the current allocation only.
-
personIdstring
The person to filter queries by.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
time away allocations. The response skips the first $skip results. Each entry is a
separate time away allocation object. If no time away allocations are available,
data is empty.
GET /api/time-away-allocationscurl https://app.humaans.io/api/time-away-allocations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "MfQQ2fWdXGD3hvZKrxm6zWE0",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-01",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a time away allocation
Retrieves the time away allocation with the given ID.
Parameters
- No parameters
Returns
Returns a time away allocation object if a valid identifier was provided.
GET /api/time-away-allocations/:idcurl https://app.humaans.io/api/time-away-allocations/MfQQ2fWdXGD3hvZKrxm6zWE0 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "MfQQ2fWdXGD3hvZKrxm6zWE0",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-01",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a time away allocation
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
typestring required
The type of allocation. One of:
placeOfWork,specific,custom. Setting allocationtypetoplaceOfWorkwill apply the time away policy based on the place of work of the employee. Setting it tospecificrequires providing thetimeAwayPolicyIdthat should be applied. Setting tocustomrequires passing policy object in thetimeAwayPolicyfield. -
effectiveDatedate | null required
The first day when the allocation is in effect.
-
timeAwayPolicyIdstring
The ID of the time away policy used by this allocation.
-
timeAwayPolicytime away policy
The time away policy used by this allocation. When the
typeof the allocation iscustom, these attributes are writable and can be used to create custom inline per person policies. In case thetypeisplaceOfWorkorspecific- only thetimeAwayPolicyIdis writable and must be used to assign an existing time away policy. -
replaceInitialAllocationboolean
Must be
trueto change the initial (“from employment start”) allocation’s policy. That allocation has no effective date and applies across the person’s whole employment history, so replacing its policy rewrites all past leave. -
removeAllocationsboolean
Returns
Returns a time away allocation if the call succeeded. The call returns an error if parameters are invalid.
POST /api/time-away-allocationscurl https://app.humaans.io/api/time-away-allocations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"effectiveDate":"2020-04-30"}'
{
"id": "MfQQ2fWdXGD3hvZKrxm6zWE0",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-30",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a time away allocation
Parameters
-
typestring
The type of allocation. One of:
placeOfWork,specific,custom. Setting allocationtypetoplaceOfWorkwill apply the time away policy based on the place of work of the employee. Setting it tospecificrequires providing thetimeAwayPolicyIdthat should be applied. Setting tocustomrequires passing policy object in thetimeAwayPolicyfield. -
effectiveDatedate | null
The first day when the allocation is in effect.
-
timeAwayPolicyIdstring
The ID of the time away policy used by this allocation.
-
timeAwayPolicytime away policy
The time away policy used by this allocation. When the
typeof the allocation iscustom, these attributes are writable and can be used to create custom inline per person policies. In case thetypeisplaceOfWorkorspecific- only thetimeAwayPolicyIdis writable and must be used to assign an existing time away policy. -
replaceInitialAllocationboolean
Must be
trueto change the initial (“from employment start”) allocation’s policy. That allocation has no effective date and applies across the person’s whole employment history, so replacing its policy rewrites all past leave.
Returns
Returns the time away allocation if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/time-away-allocations/:idcurl https://app.humaans.io/api/time-away-allocations/MfQQ2fWdXGD3hvZKrxm6zWE0 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"effectiveDate":"2020-04-30"}'
{
"id": "MfQQ2fWdXGD3hvZKrxm6zWE0",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-30",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a time away allocation
Permanently deletes a time away allocation. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/time-away-allocations/:idcurl https://app.humaans.io/api/time-away-allocations/MfQQ2fWdXGD3hvZKrxm6zWE0 \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "MfQQ2fWdXGD3hvZKrxm6zWE0",
"deleted": true
}Time away periods
Time away periods is used to find employee’s time off allowance, remaining balance and many other useful attributes. Time away is sliced into periods and each period contains a summary.
Typically a period year long starting on 1st of January and ending on 31st of December. But it can also start and end mid year in case it is the first period and the employee started working mid year, if the time away allocation was changed mid year, or if the employee is offboarded. For example, consider an employee that started employment on 2018-08-01 and left on 2020-03-15. Such an employee would have 3 periods:
2018-08-01 - 2018-12-312019-01-01 - 2019-12-312020-01-01 - 2020-03-15
Each of these periods will contain allowance, accrued days, balance, adjustments, days taken and so on.
The last period for active employees has the isCurrentPeriod attribute set
to true and can be used to find the current status of the employee’s time away.
Note, that a policy can be configured to have a different year start than January 1st, in which case each period under that policy would start on the day configured in the policy.
GET /api/time-away-periodsprivate:readTime away period object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
startDatedate
The start of the PTO accrual and usage periods. This can be either the start of a new year, the start of employment, or the date when a new policy was assigned. Note: the start of the year depends on the policy configuration.
-
endDatedate
The end of the PTO accrual period. This can be either the end of the year, the end of employment, or the day before a new policy was assigned. Note: the end of the year depends on the policy configuration.
-
usageEndDatedate
The end of the PTO usage period. This can be either the end of the year, the end of employment, or the day before a new policy was assigned. Note: the end of the year will be
ptoUsagePeriodmonths from theyearStart. -
timeAwayAllocationtime away allocation
The time away allocation used in this period.
-
timeAwayTypeIdstring
The id of the type this period data refers to
-
isCurrentPeriodboolean
truemeans this is the accrual period that the employee is currently in. Current periods are useful for finding the current accrual or balance of an employee. -
isFinalPeriodboolean
truemeans this is the final period, which holds the final balance of an offboarded employee. -
hasAllocationChangedboolean
truemeans that this period has a new time away allocation and policy compared to the previous period. -
isCarriedOverInFullboolean
truemeans the remaining balance of the previous period has been carried over in full to the current period. This is done when allocation is changed mid year. -
isProratedboolean
truemeans the allowance is prorated, because the period is partial. This happens for new employees that start accruing time off allowance mid year or when the policy is changed mid year. -
accruednumber
Currently accrued allowance. The accrued balance as of today (or as of the
endDateof the period for past periods). For the current period this indicates the accrued allowance as of today. -
allowancenumber
End of year allowance. The accrued balance as of the
endDateof the period. For the current period this indicates what the person is allowed to take in total by the end of the year. -
fromPrevAccrualPeriodinteger
The number of days available from the prev accrual period that are still available to be used.
-
fromPrevAccrualPeriodValidUntilDatedate
The date at which
fromPrevAccrualPeriodis valid until. -
fromPrevAccrualPeriodExpiredinteger
The number of days from
fromPrevAccrualPeriodthat has expired in this period. -
carriedOvernumber
The number of days that have been carried over from the previous period. Calculated based on the allocation assigned to this period.
-
carriedOverDatedate
The date at which
carriedOveris applied. -
carriedOverExpirednumber
The amount of carried-over balance that expired unused because it was not used within the carry-over usage period. 0 when the carry-over usage window has not closed yet or no window applies.
-
carryOverUsageEndDatedate
The date the carried-over balance stops being usable, derived from the policy’s carry-over usage period. Null when no carry-over usage window applies.
-
adjustmentsnumber
The sum of all adjustments (negative and positive) made in this period excluding upcoming adjustments in the case of the current period.
-
adjustmentsUpcomingnumber
The sum of all upcoming adjustments (negative and positive) made in this period. Always 0 if this is not the current period.
-
usednumber
The number of approved days already used up in this period, excluding upcoming days off.
-
pendingnumber
The number of pending days already used up in this period, excluding upcoming days off.
-
upcomingnumber
The number of approved days upcoming in this period. Always 0 if this is not the current period.
-
upcomingPendingnumber
The number of pending days upcoming in this period. Always 0 if this is not the current period.
-
balancenumber
Current balance. The remaining balance as of today (or as of the
endDateof the period for past periods) excluding pending and upcoming time off entries. -
endingBalancenumber
End of year balance. The remaining balance as of the
endDateof the period.
{
"id": "X4XT4ZLOwT9GYbPyl90HztBu",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-09-01",
"endDate": "2021-08-31",
"usageEndDate": "2021-12-31",
"timeAwayAllocation": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-01",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"timeAwayTypeId": "0defdigw4ayfQ0EP22HjZGiD",
"isCurrentPeriod": true,
"isFinalPeriod": false,
"hasAllocationChanged": false,
"isCarriedOverInFull": false,
"isProrated": true,
"accrued": 8.09,
"allowance": 20,
"fromPrevAccrualPeriod": 2,
"fromPrevAccrualPeriodValidUntilDate": "2021-12-31",
"fromPrevAccrualPeriodExpired": 2,
"carriedOver": -0.17,
"carriedOverDate": "2020-12-31",
"carriedOverExpired": 0,
"carryOverUsageEndDate": "2021-03-31",
"adjustments": 0,
"adjustmentsUpcoming": 0,
"used": 2,
"pending": 2,
"upcoming": 0,
"upcomingPending": 0,
"balance": 5.92,
"endingBalance": 17.83
}List all time away periods
Returns a list of time away periods.
Parameters
-
datedate
If provided, the balances and accruals of the current period will be calculated based on this date. Defaults to today if not provided.
-
isCurrentPeriodboolean
Return the current period only.
-
isFinalPeriodboolean
Return the final period only.
-
personIdstring
The person to filter queries by.
-
timeAwayTypeIdstring
If a time away type is specified, returns the periods for that type. If set to ‘all’, the response includes periods for all time away types. Defaults to pto type if no type is provided.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object with a data property that contains a list of time away periods.
GET /api/time-away-periodscurl https://app.humaans.io/api/time-away-periods \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "X4XT4ZLOwT9GYbPyl90HztBu",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-09-01",
"endDate": "2021-08-31",
"usageEndDate": "2021-12-31",
"timeAwayAllocation": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"type": "placeOfWork",
"effectiveDate": "2020-04-01",
"timeAwayPolicyId": "smIkoZZ0t4KlXbEka2UC9m7I",
"timeAwayPolicy": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
},
"timeAwayTypeId": "0defdigw4ayfQ0EP22HjZGiD",
"isCurrentPeriod": true,
"isFinalPeriod": false,
"hasAllocationChanged": false,
"isCarriedOverInFull": false,
"isProrated": true,
"accrued": 8.09,
"allowance": 20,
"fromPrevAccrualPeriod": 2,
"fromPrevAccrualPeriodValidUntilDate": "2021-12-31",
"fromPrevAccrualPeriodExpired": 2,
"carriedOver": -0.17,
"carriedOverDate": "2020-12-31",
"carriedOverExpired": 0,
"carryOverUsageEndDate": "2021-03-31",
"adjustments": 0,
"adjustmentsUpcoming": 0,
"used": 2,
"pending": 2,
"upcoming": 0,
"upcomingPending": 0,
"balance": 5.92,
"endingBalance": 17.83
}
]
}Time away policies
An object representing a time away policy. Time away policies are applied to employees to assign a yearly paid time off allowance, carry over days and a number of other settings.
GET /api/time-away-policies GET /api/time-away-policies/:id POST /api/time-away-policies PATCH /api/time-away-policies/:idDELETE /api/time-away-policies/:idprivate:readpublic:readprivate:writeTime away policy object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
namestring
The name of the policy.
-
timeAwayPolicyVersionobject
Time away policy version information
-
timeAwayPolicyVersion.idstring
Unique identifier for the object.
-
timeAwayPolicyVersion.bypassWorkingScheduleboolean
truemeans weekends will be treated as working days. Default isfalseand means that weekends do not use up the available balance. -
timeAwayPolicyVersion.bypassPublicHolidaysboolean
truemeans public holidays will be treated as working days. Default isfalseand means that public holidays do not use up the available balance. -
timeAwayPolicyVersion.publicHolidayCalendarIdstring
A specific public holiday calendar id for all employees on this policy. If
null, this will default to the employee’s office or remote location. -
timeAwayPolicyVersion.visibleBalancesstring[]
Which balances to show to employees. Available options are
endOfYearortoday. -
timeAwayPolicyVersion.rulesobject[]
List of time away types that are available on this policy.
-
timeAwayPolicyVersion.rules.timeAwayTypeIdstring
ID of the time away type that this rule is associated to.
-
timeAwayPolicyVersion.rules.limitsobject
If
null, balances will not be caluclated for this type but usage numbers will still be available. -
timeAwayPolicyVersion.rules.limits.yearlyAllowancenumber
The number of paid time off days allowed per year.
-
timeAwayPolicyVersion.rules.limits.maxCarryOvernumber
The number of days to carry over into the next year.
nullcarries over the entire balance (no cap), which is the default when amaxBalanceis set. -
timeAwayPolicyVersion.rules.limits.yearStartstring
The start of the time off year. The format is
MM-DD. -
timeAwayPolicyVersion.rules.limits.yearStartTypestring
Whether the policy starts on employment start date or a custom date.
-
timeAwayPolicyVersion.rules.limits.isUnlimitedboolean
truemeans the time off policy allows to take unlimited paid time off days. -
timeAwayPolicyVersion.rules.limits.isProratedboolean
truemeans the allowance will be prorated based on FTE. -
timeAwayPolicyVersion.rules.limits.maxBalancenumber
The maximum balance an employee can accrue. Once reached, accrual pauses until the balance drops below the cap, then resumes. Not valid for unlimited policies. Prorated by FTE when
isProratedis true. -
timeAwayPolicyVersion.rules.limits.preventNegativeBalanceboolean
trueprevents booking more leave than currently available. -
timeAwayPolicyVersion.rules.limits.maxNegativeBalancenumber
The maximum number of days the balance is allowed to go negative. Only applies when
preventNegativeBalanceis false.nullmeans the balance can go negative without limit. -
timeAwayPolicyVersion.rules.limits.usagestring
Whether the employee can use PTO days for the year upfront or after they’ve been accrued. One of
upfrontoraccrued. -
timeAwayPolicyVersion.rules.limits.usagePeriodinteger
The length of the period in months beginning on
yearStartwhere the employees’ yearly PTO can be used. One of12,15,16, or18.nullmeans carried over balance never expires, and goes hand in hand with anullmaxCarryOver. Defaults to: 12. -
timeAwayPolicyVersion.rules.limits.carryOverUsagePeriodinteger
The number of months, from the start of the year the balance is carried into, that carried-over balance stays usable before it expires. When booking time off, balance expiring soonest is used first.
nullmeans carried-over balance follows the same usage period as the yearly allowance (usagePeriod). -
timeAwayPolicyVersion.rules.limits.roundingTypestring
The rounding method applied to the time away balance. Valid options are
halfUp,wholeUpandnoRounding. -
archivedAtdate-time
When the policy was archived.
-
isArchivedboolean
Whether the policy is archived.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "dFCSrX1I3nzOZQMpblBclisO",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all time away policies
Returns a list of time away policies.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
time away policies. The response skips the first $skip results. Each entry is a
separate time away policy object. If no time away policies are available,
data is empty.
GET /api/time-away-policiescurl https://app.humaans.io/api/time-away-policies \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "dFCSrX1I3nzOZQMpblBclisO",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a time away policy
Retrieves the time away policy with the given ID.
Parameters
- No parameters
Returns
Returns a time away policy object if a valid identifier was provided.
GET /api/time-away-policies/:idcurl https://app.humaans.io/api/time-away-policies/dFCSrX1I3nzOZQMpblBclisO \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "dFCSrX1I3nzOZQMpblBclisO",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a time away policy
Parameters
-
namestring required
The name of the policy.
-
timeAwayPolicyVersionobject one of yearlyPtoAllowance or timeAwayPolicyVersion or timeAwayPolicyTemplateId required
Time away policy version information
-
timeAwayPolicyVersion.bypassWorkingScheduleboolean
truemeans weekends will be treated as working days. Default isfalseand means that weekends do not use up the available balance. -
timeAwayPolicyVersion.bypassPublicHolidaysboolean
truemeans public holidays will be treated as working days. Default isfalseand means that public holidays do not use up the available balance. -
timeAwayPolicyVersion.publicHolidayCalendarIdstring | null
A specific public holiday calendar id for all employees on this policy. If
null, this will default to the employee’s office or remote location. -
timeAwayPolicyVersion.visibleBalancesstring[]
Which balances to show to employees. Available options are
endOfYearortoday. -
timeAwayPolicyVersion.rulesobject[] required
List of time away types that are available on this policy.
-
timeAwayPolicyVersion.rules.timeAwayTypeIdstring one of timeAwayTypeId or timeAwayType required
ID of the time away type that this rule is associated to.
-
timeAwayPolicyVersion.rules.limitsobject | null required
If
null, balances will not be caluclated for this type but usage numbers will still be available. -
timeAwayPolicyVersion.rules.limits.yearlyAllowancenumber required
The number of paid time off days allowed per year.
-
timeAwayPolicyVersion.rules.limits.maxCarryOvernumber | null
The number of days to carry over into the next year.
nullcarries over the entire balance (no cap), which is the default when amaxBalanceis set. -
timeAwayPolicyVersion.rules.limits.yearStartstring
The start of the time off year. The format is
MM-DD. -
timeAwayPolicyVersion.rules.limits.yearStartTypestring
Whether the policy starts on employment start date or a custom date.
-
timeAwayPolicyVersion.rules.limits.isUnlimitedboolean required
truemeans the time off policy allows to take unlimited paid time off days. -
timeAwayPolicyVersion.rules.limits.isProratedboolean required
truemeans the allowance will be prorated based on FTE. -
timeAwayPolicyVersion.rules.limits.maxBalancenumber | null
The maximum balance an employee can accrue. Once reached, accrual pauses until the balance drops below the cap, then resumes. Not valid for unlimited policies. Prorated by FTE when
isProratedis true. -
timeAwayPolicyVersion.rules.limits.preventNegativeBalanceboolean
trueprevents booking more leave than currently available. -
timeAwayPolicyVersion.rules.limits.maxNegativeBalancenumber | null
The maximum number of days the balance is allowed to go negative. Only applies when
preventNegativeBalanceis false.nullmeans the balance can go negative without limit. -
timeAwayPolicyVersion.rules.limits.usagestring required
Whether the employee can use PTO days for the year upfront or after they’ve been accrued. One of
upfrontoraccrued. -
timeAwayPolicyVersion.rules.limits.usagePeriodinteger | null
The length of the period in months beginning on
yearStartwhere the employees’ yearly PTO can be used. One of12,15,16, or18.nullmeans carried over balance never expires, and goes hand in hand with anullmaxCarryOver. Defaults to: 12. -
timeAwayPolicyVersion.rules.limits.carryOverUsagePeriodinteger | null
The number of months, from the start of the year the balance is carried into, that carried-over balance stays usable before it expires. When booking time off, balance expiring soonest is used first.
nullmeans carried-over balance follows the same usage period as the yearly allowance (usagePeriod). -
timeAwayPolicyVersion.rules.limits.roundingTypestring
The rounding method applied to the time away balance. Valid options are
halfUp,wholeUpandnoRounding. -
timeAwayPolicyTemplateIdstring one of yearlyPtoAllowance or timeAwayPolicyVersion or timeAwayPolicyTemplateId required
Returns
Returns a time away policy if the call succeeded. The call returns an error if parameters are invalid.
POST /api/time-away-policiescurl https://app.humaans.io/api/time-away-policies \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"UK Policy","timeAwayPolicyVersion":{"id":"smIkoZZ0t4KlXbEka2UC9m7I","bypassWorkingSchedule":false,"bypassPublicHolidays":false,"publicHolidayCalendarId":"GB","visibleBalances":["endOfYear"],"rules":[{"timeAwayTypeId":"awM6sG5O2eSBAX2CeVap0MZa","limits":{"yearlyAllowance":30,"maxCarryOver":5,"yearStart":"01-01","yearStartType":"employmentStartDate","isUnlimited":false,"isProrated":false,"maxBalance":30,"preventNegativeBalance":false,"maxNegativeBalance":5,"usage":"upfront","usagePeriod":12,"carryOverUsagePeriod":3,"roundingType":"halfUp"}}]}}'
{
"id": "dFCSrX1I3nzOZQMpblBclisO",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a time away policy
Parameters
-
namestring
The name of the policy.
-
isArchivedboolean
Whether the policy is archived.
-
timeAwayPolicyVersionobject
Time away policy version information
-
timeAwayPolicyVersion.bypassWorkingScheduleboolean
truemeans weekends will be treated as working days. Default isfalseand means that weekends do not use up the available balance. -
timeAwayPolicyVersion.bypassPublicHolidaysboolean
truemeans public holidays will be treated as working days. Default isfalseand means that public holidays do not use up the available balance. -
timeAwayPolicyVersion.publicHolidayCalendarIdstring | null
A specific public holiday calendar id for all employees on this policy. If
null, this will default to the employee’s office or remote location. -
timeAwayPolicyVersion.visibleBalancesstring[]
Which balances to show to employees. Available options are
endOfYearortoday. -
timeAwayPolicyVersion.rulesobject[]
List of time away types that are available on this policy.
-
timeAwayPolicyVersion.rules.timeAwayTypeIdstring one of timeAwayTypeId or timeAwayType required
ID of the time away type that this rule is associated to.
-
timeAwayPolicyVersion.rules.limitsobject | null required
If
null, balances will not be caluclated for this type but usage numbers will still be available. -
timeAwayPolicyVersion.rules.limits.yearlyAllowancenumber required
The number of paid time off days allowed per year.
-
timeAwayPolicyVersion.rules.limits.maxCarryOvernumber | null
The number of days to carry over into the next year.
nullcarries over the entire balance (no cap), which is the default when amaxBalanceis set. -
timeAwayPolicyVersion.rules.limits.yearStartstring
The start of the time off year. The format is
MM-DD. -
timeAwayPolicyVersion.rules.limits.yearStartTypestring
Whether the policy starts on employment start date or a custom date.
-
timeAwayPolicyVersion.rules.limits.isUnlimitedboolean required
truemeans the time off policy allows to take unlimited paid time off days. -
timeAwayPolicyVersion.rules.limits.isProratedboolean required
truemeans the allowance will be prorated based on FTE. -
timeAwayPolicyVersion.rules.limits.maxBalancenumber | null
The maximum balance an employee can accrue. Once reached, accrual pauses until the balance drops below the cap, then resumes. Not valid for unlimited policies. Prorated by FTE when
isProratedis true. -
timeAwayPolicyVersion.rules.limits.preventNegativeBalanceboolean
trueprevents booking more leave than currently available. -
timeAwayPolicyVersion.rules.limits.maxNegativeBalancenumber | null
The maximum number of days the balance is allowed to go negative. Only applies when
preventNegativeBalanceis false.nullmeans the balance can go negative without limit. -
timeAwayPolicyVersion.rules.limits.usagestring required
Whether the employee can use PTO days for the year upfront or after they’ve been accrued. One of
upfrontoraccrued. -
timeAwayPolicyVersion.rules.limits.usagePeriodinteger | null
The length of the period in months beginning on
yearStartwhere the employees’ yearly PTO can be used. One of12,15,16, or18.nullmeans carried over balance never expires, and goes hand in hand with anullmaxCarryOver. Defaults to: 12. -
timeAwayPolicyVersion.rules.limits.carryOverUsagePeriodinteger | null
The number of months, from the start of the year the balance is carried into, that carried-over balance stays usable before it expires. When booking time off, balance expiring soonest is used first.
nullmeans carried-over balance follows the same usage period as the yearly allowance (usagePeriod). -
timeAwayPolicyVersion.rules.limits.roundingTypestring
The rounding method applied to the time away balance. Valid options are
halfUp,wholeUpandnoRounding.
Returns
Returns the time away policy if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/time-away-policies/:idcurl https://app.humaans.io/api/time-away-policies/dFCSrX1I3nzOZQMpblBclisO \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "dFCSrX1I3nzOZQMpblBclisO",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "UK Policy",
"timeAwayPolicyVersion": {
"id": "smIkoZZ0t4KlXbEka2UC9m7I",
"bypassWorkingSchedule": false,
"bypassPublicHolidays": false,
"publicHolidayCalendarId": "GB",
"visibleBalances": [
"endOfYear"
],
"rules": [
{
"timeAwayTypeId": "awM6sG5O2eSBAX2CeVap0MZa",
"limits": {
"yearlyAllowance": 30,
"maxCarryOver": 5,
"yearStart": "01-01",
"yearStartType": "employmentStartDate",
"isUnlimited": false,
"isProrated": false,
"maxBalance": 30,
"preventNegativeBalance": false,
"maxNegativeBalance": 5,
"usage": "upfront",
"usagePeriod": 12,
"carryOverUsagePeriod": 3,
"roundingType": "halfUp"
}
}
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a time away policy
Permanently deletes a time away policy. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/time-away-policies/:idcurl https://app.humaans.io/api/time-away-policies/dFCSrX1I3nzOZQMpblBclisO \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "dFCSrX1I3nzOZQMpblBclisO",
"deleted": true
}Time away types
An object representing a time away type. Types are the set of reasons people can book time away for. Examples of types are “Paid time off”, “Sick leave”, “Maternity leave” and so on. Custom types can be created in addition to the standard types provided by Humaans.
GET /api/time-away-types GET /api/time-away-types/:id POST /api/time-away-types PATCH /api/time-away-types/:idDELETE /api/time-away-types/:idpublic:readprivate:writeTime away type object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
namestring
The name of the time away type.
-
emojistring
An emoji for visualising the time away type.
-
emojiLabelstring
An emoji label for accessibility.
-
categorystring
Whether the type represents time off or working away.
timeOffis a genuine absence such as holiday, sick, or parental leave;workingAwayis time worked off-site, such as from home or another location. -
baseTypestring
The base type of the time away type. One of
pto,sick,workingFromHome, orworkingFromAnotherLocation -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "4NJq5i7WwkUgHYzRqkLritrb",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Paid time off",
"emoji": "🏝",
"emojiLabel": "Beach",
"category": "timeOff",
"baseType": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all time away types
Returns a list of time away types.
Parameters
-
idstring · $in
The ID of the time away type.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter time away types by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$orobject[]
Filter results by multiple criteria.
-
$or.idstring · $in
The ID of the time away type.
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
time away types. The response skips the first $skip results. Each entry is a
separate time away type object. If no time away types are available,
data is empty.
GET /api/time-away-typescurl https://app.humaans.io/api/time-away-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "4NJq5i7WwkUgHYzRqkLritrb",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Paid time off",
"emoji": "🏝",
"emojiLabel": "Beach",
"category": "timeOff",
"baseType": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a time away type
Retrieves the time away type with the given ID.
Parameters
- No parameters
Returns
Returns a time away type object if a valid identifier was provided.
GET /api/time-away-types/:idcurl https://app.humaans.io/api/time-away-types/4NJq5i7WwkUgHYzRqkLritrb \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "4NJq5i7WwkUgHYzRqkLritrb",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Paid time off",
"emoji": "🏝",
"emojiLabel": "Beach",
"category": "timeOff",
"baseType": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a time away type
Parameters
-
namestring required
The name of the time away type.
-
emojistring required
An emoji for visualising the time away type.
-
categorystring one of type or category required
Whether the type represents time off or working away.
timeOffis a genuine absence such as holiday, sick, or parental leave;workingAwayis time worked off-site, such as from home or another location.
Returns
Returns a time away type if the call succeeded. The call returns an error if parameters are invalid.
POST /api/time-away-typescurl https://app.humaans.io/api/time-away-types \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Paid time off","emoji":"🏝","category":"timeOff"}'
{
"id": "4NJq5i7WwkUgHYzRqkLritrb",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Paid time off",
"emoji": "🏝",
"emojiLabel": "Beach",
"category": "timeOff",
"baseType": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a time away type
Parameters
-
namestring
The name of the time away type.
-
emojistring
An emoji for visualising the time away type.
Returns
Returns the time away type if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/time-away-types/:idcurl https://app.humaans.io/api/time-away-types/4NJq5i7WwkUgHYzRqkLritrb \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "4NJq5i7WwkUgHYzRqkLritrb",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"name": "Paid time off",
"emoji": "🏝",
"emojiLabel": "Beach",
"category": "timeOff",
"baseType": null,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a time away type
Permanently deletes a time away type. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/time-away-types/:idcurl https://app.humaans.io/api/time-away-types/4NJq5i7WwkUgHYzRqkLritrb \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "4NJq5i7WwkUgHYzRqkLritrb",
"deleted": true
}Timesheet entries
An object representing a timesheet entry of an employee
GET /api/timesheet-entries GET /api/timesheet-entries/:id POST /api/timesheet-entries PATCH /api/timesheet-entries/:idDELETE /api/timesheet-entries/:idprivate:readprivate:writeTimesheet entry object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
datedate
The date of this timesheet entry.
-
startTimestring
The start time of this timesheet entry.
-
endTimestring
The end time of this timesheet entry.
-
durationobject
The duration of this timesheet entry, as
{hours, minutes}. To total it, combine both parts — e.g.duration.hours + duration.minutes / 60for hours — since one part alone is only half the answer. -
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "0vUGk85FkSDHXfeOTnXqkk4d",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-04-01",
"startTime": "09:00:00",
"endTime": "12:30:00",
"duration": {
"hours": 3,
"minutes": 30
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all timesheet entries
Returns a list of timesheet entries.
The timesheet entries can be filtered using more complex filter conditions. Refer to Filtering documentation for more details on usage.
Parameters
-
idobject
The ID of an existing timesheet entry.
-
datedate · $eq $ne $in $nin $gt $lt $gte $lte
The date of this timesheet entry.
-
endTimestring | empty
The end time of this timesheet entry.
-
id.$instring[] required
An array of IDs of existing timesheet entries.
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring
The person to filter queries by.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter timesheet entries by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
timesheet entries. The response skips the first $skip results. Each entry is a
separate timesheet entry object. If no timesheet entries are available,
data is empty.
GET /api/timesheet-entriescurl https://app.humaans.io/api/timesheet-entries \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "0vUGk85FkSDHXfeOTnXqkk4d",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-04-01",
"startTime": "09:00:00",
"endTime": "12:30:00",
"duration": {
"hours": 3,
"minutes": 30
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a timesheet entry
Retrieves the timesheet entry with the given ID.
Parameters
- No parameters
Returns
Returns a timesheet entry object if a valid identifier was provided.
GET /api/timesheet-entries/:idcurl https://app.humaans.io/api/timesheet-entries/0vUGk85FkSDHXfeOTnXqkk4d \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "0vUGk85FkSDHXfeOTnXqkk4d",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-04-01",
"startTime": "09:00:00",
"endTime": "12:30:00",
"duration": {
"hours": 3,
"minutes": 30
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a timesheet entry
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
datedate required
The date of this timesheet entry.
-
startTimestring required
The start time of this timesheet entry.
-
endTimestring
The end time of this timesheet entry.
Returns
Returns a timesheet entry if the call succeeded. The call returns an error if parameters are invalid.
POST /api/timesheet-entriescurl https://app.humaans.io/api/timesheet-entries \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","date":"2020-04-01","startTime":"09:00:00"}'
{
"id": "0vUGk85FkSDHXfeOTnXqkk4d",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-04-01",
"startTime": "09:00:00",
"endTime": "12:30:00",
"duration": {
"hours": 3,
"minutes": 30
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a timesheet entry
Parameters
-
datedate
The date of this timesheet entry.
-
startTimestring
The start time of this timesheet entry.
-
endTimestring
The end time of this timesheet entry.
Returns
Returns the timesheet entry if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/timesheet-entries/:idcurl https://app.humaans.io/api/timesheet-entries/0vUGk85FkSDHXfeOTnXqkk4d \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "0vUGk85FkSDHXfeOTnXqkk4d",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"date": "2020-04-01",
"startTime": "09:00:00",
"endTime": "12:30:00",
"duration": {
"hours": 3,
"minutes": 30
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a timesheet entry
Permanently deletes a timesheet entry. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/timesheet-entries/:idcurl https://app.humaans.io/api/timesheet-entries/0vUGk85FkSDHXfeOTnXqkk4d \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "0vUGk85FkSDHXfeOTnXqkk4d",
"deleted": true
}Timesheet submissions
An object representing a timesheet submission of an employee
GET /api/timesheet-submissions GET /api/timesheet-submissions/:id POST /api/timesheet-submissions PATCH /api/timesheet-submissions/:idDELETE /api/timesheet-submissions/:idprivate:readprivate:writeTimesheet submission object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
ID of the person that this object is associated to.
-
startDatedate
The start date of the month which this submission covers.
-
endDatedate
The end date of the month which this submission covers.
-
statusstring
One of
pending,approved,rejected. -
submittedAtdate-time
The date and time when this submission was last submitted.
-
reviewedBystring
The ID of the person that reviewed this submission.
-
reviewedAtdate-time
The date and time when this submission was reviewed.
-
changesRequestedstring
Changes requested to accompany a rejected submission.
-
durationAsTimeobject
The total time attached to this submission.
-
durationAsDaysnumber
The total days attached to this submission.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
-
deletedAtdate-time
{
"id": "Qh1bcl6baOIFPBgJjM0I9wNB",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-04-01",
"endDate": "2020-04-30",
"status": "pending",
"submittedAt": "2020-04-30T17:08:29.290Z",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-04-30T17:08:29.290Z",
"changesRequested": "Missing hours from weekend shift.",
"durationAsTime": {
"hours": 127,
"minutes": 30
},
"durationAsDays": 23,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all timesheet submissions
The timesheet submissions can be filtered using more complex filter conditions. Refer to Filtering documentation for more details on usage.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring
The person to filter queries by.
-
startDatestring
The start date of the month which this submission covers.
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter timesheet submissions by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns a list of timesheet submissions.
GET /api/timesheet-submissionscurl https://app.humaans.io/api/timesheet-submissions \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "Qh1bcl6baOIFPBgJjM0I9wNB",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-04-01",
"endDate": "2020-04-30",
"status": "pending",
"submittedAt": "2020-04-30T17:08:29.290Z",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-04-30T17:08:29.290Z",
"changesRequested": "Missing hours from weekend shift.",
"durationAsTime": {
"hours": 127,
"minutes": 30
},
"durationAsDays": 23,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a timesheet submission
Retrieves the timesheet submission with the given ID.
Parameters
- No parameters
Returns
Returns a timesheet submission object if a valid identifier was provided.
GET /api/timesheet-submissions/:idcurl https://app.humaans.io/api/timesheet-submissions/Qh1bcl6baOIFPBgJjM0I9wNB \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "Qh1bcl6baOIFPBgJjM0I9wNB",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-04-01",
"endDate": "2020-04-30",
"status": "pending",
"submittedAt": "2020-04-30T17:08:29.290Z",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-04-30T17:08:29.290Z",
"changesRequested": "Missing hours from weekend shift.",
"durationAsTime": {
"hours": 127,
"minutes": 30
},
"durationAsDays": 23,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a timesheet submission
Parameters
-
personIdstring required
ID of the person that this object is associated to.
-
startDatedate required
The start date of the month which this submission covers.
Returns
Returns a timesheet submission if the call succeeded. The call returns an error if parameters are invalid.
POST /api/timesheet-submissionscurl https://app.humaans.io/api/timesheet-submissions \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","startDate":"2020-04-01"}'
{
"id": "Qh1bcl6baOIFPBgJjM0I9wNB",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-04-01",
"endDate": "2020-04-30",
"status": "pending",
"submittedAt": "2020-04-30T17:08:29.290Z",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-04-30T17:08:29.290Z",
"changesRequested": "Missing hours from weekend shift.",
"durationAsTime": {
"hours": 127,
"minutes": 30
},
"durationAsDays": 23,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a timesheet submission
Parameters
-
statusstring required
One of
pending,approved,rejected. -
changesRequestedstring
Changes requested to accompany a rejected submission.
Returns
Returns the timesheet submission if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/timesheet-submissions/:idcurl https://app.humaans.io/api/timesheet-submissions/Qh1bcl6baOIFPBgJjM0I9wNB \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"status":"pending"}'
{
"id": "Qh1bcl6baOIFPBgJjM0I9wNB",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"startDate": "2020-04-01",
"endDate": "2020-04-30",
"status": "pending",
"submittedAt": "2020-04-30T17:08:29.290Z",
"reviewedBy": "ob4xPcVpGGZm043C7xGMfP1U",
"reviewedAt": "2020-04-30T17:08:29.290Z",
"changesRequested": "Missing hours from weekend shift.",
"durationAsTime": {
"hours": 127,
"minutes": 30
},
"durationAsDays": 23,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a timesheet submission
Permanently deletes a timesheet submission. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/timesheet-submissions/:idcurl https://app.humaans.io/api/timesheet-submissions/Qh1bcl6baOIFPBgJjM0I9wNB \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "Qh1bcl6baOIFPBgJjM0I9wNB",
"deleted": true
}Token info
An object containing the scoped permissions of the current access token.
GET /api/token-info*
Token info object
Attributes
-
scopesstring[]
{
"scopes": [
"public:read",
"documents:read"
]
}Retrieve my token info
Retrieves the scopes assigned to the current token.
Parameters
- No parameters
Returns
Returns the current token’s scopes.
GET /api/token-infocurl https://app.humaans.io/api/token-info \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"scopes": [
"public:read",
"documents:read"
]
}Webhook events
An object representing an action triggered by a person, integration, the system or support.
Webhook event object
Attributes
-
id
The unique ID of the event
-
seq
A sortable sequence string
-
ts
The date time the event was created
-
action
The action type of the event sent. One of
timeAway.created,timeAway.updated,timeAway.deleted,timeAway.approved,timeAway.rejected,timeAwayAdjustment.created,timeAwayAdjustment.updated,timeAwayAdjustment.deleted,person.created,person.updated,person.offboarded,person.reonboarded,person.deleted,bankAccount.created,bankAccount.updated,bankAccount.deleted,jobRole.created,jobRole.updated,jobRole.deleted,compensation.created,compensation.updated,compensation.deleted,emergencyContact.created,emergencyContact.updated,emergencyContact.deleted,equipment.created,equipment.updated,equipment.deleted. -
subject
The affected participant of the event
-
actor
The affecting participant of the event, may be an integration
-
entity
The information that has been changed in the event
-
entity.id
The ID if the affected entity
-
entity.fieldsChanged
A list of all the fields changed, including the ids of any custom fields
-
entity.next
Any newly set information, will be
nullif unset in action -
entity.prev
Any previously set information, will be
nullif set in action -
entity.customFields
Any changed custom fields are listed here
-
entity.metadata
This is used to store additional information on the entity that may be useful, for example in the case of a compensation update it will contain the type of compensation that’s being updated
{
"id": "qCNHkhApepOJf0eFHuPzQbDg",
"seq": "01J4GSN4XYQ7401FXCYQPWH3V7",
"ts": "2024-08-05T08:14:24.190Z",
"action": "emergencyContact.created",
"subject": {
"id": "8Rc7dFxm7OFoiwxVBIFrLRAi",
"type": "person"
},
"actor": {
"personId": "8Rc7dFxm7OFoiwxVBIFrLRAi",
"type": "person"
},
"entity": {
"id": "OCPMqZtTcgFOuoc56TiKo9OT",
"fieldsChanged": [
"8Yzi4vi9SI43R5ubSAQOae5q",
"name",
"email",
"isPrimary",
"phoneNumber",
"relationship"
],
"next": {
"email": "jd@humaans.io",
"isPrimary": false,
"name": "jane",
"phoneNumber": "0123412345",
"relationship": "doe"
},
"prev": {
"email": null,
"isPrimary": null,
"name": null,
"phoneNumber": null,
"relationship": null
},
"customFields": [
{
"customFieldId": "8Yzi4vi9SI43R5ubSAQOae5q",
"next": "[\"+447979512293\"]",
"prev": null
}
],
"metadata": {}
}
}Webhooks
An object representing a webhook and it’s configuration. If a webhook is created or patched with status equal to active then prodEndpointUrl and subscribedEvents become mandatory properties.
GET /api/webhooks GET /api/webhooks/:id POST /api/webhooks PATCH /api/webhooks/:idDELETE /api/webhooks/:idwebhooks:manageWebhook object
Attributes
-
idstring
Unique identifier for the object.
-
namestring
A short name for the webhook.
-
descriptionstring
A longer description for the webhook.
-
prodEndpointUrlstring
The endpoint that will receive webhook events.
-
prodEndpointSignaturestring
This signature can be used to verify that the webhook message came from Humaans, read more about this in the webhooks section.
-
subscribedEventsstring[]
The list of webhook events that will be sent to the configured endpoint.
-
statusstring
The status of the webhook, can be one of
draft,activeordisabled. -
createdBystring
The person who first created the webhook.
-
publishedBystring
The person who last published the webhook.
-
createdAtdate-time
Time at which the object was created.
-
updatedAtdate-time
Time at which the object was last updated.
{
"id": "2ehafnPohpOY49mlQx0i3SHL",
"name": "Payroll integration",
"description": "Integrates Humaans with the PayrollX system",
"prodEndpointUrl": "https://myco.io/api/webhook/humaans",
"prodEndpointSignature": "whsec_FZXyzQwEgwnENgbRDtLjBdoHcd",
"subscribedEvents": [
"person.created",
"person.updated",
"person.removed"
],
"status": "active",
"createdBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"publishedBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all webhooks
Returns a list of webhooks.
Parameters
-
createdAtdate | date-time · $gt $gte $lt $lte
Filter webhooks by created at date.
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter webhooks by updated at date.
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
webhooks. The response skips the first $skip results. Each entry is a
separate webhook object. If no webhooks are available,
data is empty.
GET /api/webhookscurl https://app.humaans.io/api/webhooks \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "2ehafnPohpOY49mlQx0i3SHL",
"name": "Payroll integration",
"description": "Integrates Humaans with the PayrollX system",
"prodEndpointUrl": "https://myco.io/api/webhook/humaans",
"prodEndpointSignature": "whsec_FZXyzQwEgwnENgbRDtLjBdoHcd",
"subscribedEvents": [
"person.created",
"person.updated",
"person.removed"
],
"status": "active",
"createdBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"publishedBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a webhook
Retrieves the webhook with the given ID.
Parameters
- No parameters
Returns
Returns a webhook object if a valid identifier was provided.
GET /api/webhooks/:idcurl https://app.humaans.io/api/webhooks/2ehafnPohpOY49mlQx0i3SHL \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "2ehafnPohpOY49mlQx0i3SHL",
"name": "Payroll integration",
"description": "Integrates Humaans with the PayrollX system",
"prodEndpointUrl": "https://myco.io/api/webhook/humaans",
"prodEndpointSignature": "whsec_FZXyzQwEgwnENgbRDtLjBdoHcd",
"subscribedEvents": [
"person.created",
"person.updated",
"person.removed"
],
"status": "active",
"createdBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"publishedBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a webhook
Parameters
-
namestring required
A short name for the webhook.
-
descriptionstring | null
A longer description for the webhook.
-
prodEndpointUrlstring | null
The endpoint that will receive webhook events.
-
subscribedEventsstring[]
The list of webhook events that will be sent to the configured endpoint.
-
statusstring
The status of the webhook, can be one of
draft,activeordisabled.
Returns
Returns a webhook if the call succeeded. The call returns an error if parameters are invalid.
POST /api/webhookscurl https://app.humaans.io/api/webhooks \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"name":"Payroll integration"}'
{
"id": "2ehafnPohpOY49mlQx0i3SHL",
"name": "Payroll integration",
"description": "Integrates Humaans with the PayrollX system",
"prodEndpointUrl": "https://myco.io/api/webhook/humaans",
"prodEndpointSignature": "whsec_FZXyzQwEgwnENgbRDtLjBdoHcd",
"subscribedEvents": [
"person.created",
"person.updated",
"person.removed"
],
"status": "active",
"createdBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"publishedBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a webhook
Parameters
-
namestring
A short name for the webhook.
-
descriptionstring | null
A longer description for the webhook.
-
statusstring
The status of the webhook, can be one of
draft,activeordisabled. -
subscribedEventsstring[]
The list of webhook events that will be sent to the configured endpoint.
-
prodEndpointUrlstring | null
The endpoint that will receive webhook events.
Returns
Returns the webhook if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/webhooks/:idcurl https://app.humaans.io/api/webhooks/2ehafnPohpOY49mlQx0i3SHL \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{}'
{
"id": "2ehafnPohpOY49mlQx0i3SHL",
"name": "Payroll integration",
"description": "Integrates Humaans with the PayrollX system",
"prodEndpointUrl": "https://myco.io/api/webhook/humaans",
"prodEndpointSignature": "whsec_FZXyzQwEgwnENgbRDtLjBdoHcd",
"subscribedEvents": [
"person.created",
"person.updated",
"person.removed"
],
"status": "active",
"createdBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"publishedBy": "C6WWf6y0z7VEWlNWaSxUMntV",
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a webhook
Permanently deletes a webhook. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/webhooks/:idcurl https://app.humaans.io/api/webhooks/2ehafnPohpOY49mlQx0i3SHL \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "2ehafnPohpOY49mlQx0i3SHL",
"deleted": true
}Working pattern allocations
An object representing the assignment of a working pattern to an employee.
To assign a working pattern to an employee, create an allocation linking
a person (personId) to either:
- An existing company-wide working pattern via
workingPatternId - A custom inline working pattern via the
workingPatternobject
Each employee typically has one allocation, but can have multiple with different
effectiveDate values to track changes over time (e.g. when moving to part-time
or changing offices with different schedules). The allocation with the most recent
effectiveDate that is not in the future is considered currently active.
GET /api/working-pattern-allocations GET /api/working-pattern-allocations/:id POST /api/working-pattern-allocations PATCH /api/working-pattern-allocations/:idDELETE /api/working-pattern-allocations/:idprivate:readpublic:readprivate:writeWorking pattern allocation object
Attributes
-
idstring
Unique identifier for the object.
-
personIdstring
The ID of the person this working pattern allocation is for.
-
workingPatternIdstring
The ID of the working pattern being assigned. Must reference a company-wide working pattern (where
personIdisnull). EitherworkingPatternIdorworkingPatternmust be provided when creating an allocation. -
effectiveDatedate
The date from which this working pattern allocation takes effect. If
null, the allocation is effective from the employee’s start date. When multiple allocations exist, the most recent effective date determines the current working pattern. -
effectiveEndDatedate
The date to which this working pattern allocation takes effect.
-
workingPatternobject
The full working pattern object associated with this allocation. When creating an allocation, you can provide an inline
workingPatternobject instead of aworkingPatternIdto create a custom pattern specific to this person. -
workingPattern.idstring
Unique identifier for the object.
-
workingPattern.companyIdstring
ID of the company that this object is associated to.
-
workingPattern.personIdstring
The ID of the person this working pattern is created for. Only set for individual custom working patterns. When
null, the working pattern is a company-wide template that can be assigned to any employee. -
workingPattern.namestring
The name of the working pattern.
-
workingPattern.summarystring
A summary describing the working pattern schedule.
-
workingPattern.fullTimeHoursnumber
The number of hours that constitute full-time work over the specified
periodType. Used as the reference for calculating the FTE (Full Time Equivalent). -
workingPattern.standardDayHoursnumber
The standard number of working hours per day. Used for calculating time away allowances and working days.
-
workingPattern.periodTypestring
The time period over which
fullTimeHoursandworkingHoursare measured. One ofweek,day, ormonth. -
workingPattern.workingHoursnumber
The total hours the employee is expected to work over the period. For fixed-hours patterns, this is calculated from the
workingPatternarray. For flexible patterns (whereworkingPatterncontains booleans), this specifies the total hours to be distributed across working days. -
workingPattern.workingPatternboolean[] | number[]
The pattern of work as a JSON array where each position represents a day (starting from Monday). The array length must be a multiple of 7. Can be either:
- An array of numbers representing hours worked per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri 8h) - An array of booleans for flexible patterns where
trueindicates a working day (e.g.[true,true,true,true,true,false,false]for Mon-Fri flexible)
- An array of numbers representing hours worked per day (e.g.
-
workingPattern.ftenumber
The Full Time Equivalent, calculated as
workingHours / fullTimeHours. Rounded to 4 decimal places. A value of 1.0 represents full-time work. -
workingPattern.unroundedFtenumber
The exact Full Time Equivalent before rounding. Useful for precise calculations.
-
workingPattern.archivedAtdate-time
When the working pattern was archived.
-
workingPattern.isArchivedboolean
Whether the working pattern is archived.
-
workingPattern.createdAtdate-time
Timestamp when the working pattern was created.
-
workingPattern.updatedAtdate-time
Timestamp when the working pattern was last updated.
-
createdAtdate-time
Timestamp when the allocation was created.
-
updatedAtdate-time
Timestamp when the allocation was last updated.
-
deletedAtdate-time
The date and time the allocation was deleted. Only present on deleted allocations, which are only returned when querying with
includeDeleted.
{
"id": "wiyjmFuX79AGNiROhmIJFxHC",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"workingPatternId": "xzZJYmdPHDFSxfpWaamgVR7U",
"effectiveDate": "2020-04-01",
"effectiveEndDate": "2020-04-01",
"workingPattern": {
"fullTimeHours": 40,
"standardDayHours": 8,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all working pattern allocations
Returns a list of working pattern allocations.
Parameters
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdstring · $eq $ne $in $nin
Filter by people ids
-
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
deletedAtnull · $ne / null | date-time · $gt $gte $lt $lte / date-time
Filter by deletion time. Use with
includeDeletedand sort by deletedAt for incremental synchronization. -
$asOfdate
Filter the list of working pattern allocations to the current one per employee in effect at the provided date. Cannot be combined with
includeDeleted. -
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
working pattern allocations. The response skips the first $skip results. Each entry is a
separate working pattern allocation object. If no working pattern allocations are available,
data is empty.
GET /api/working-pattern-allocationscurl https://app.humaans.io/api/working-pattern-allocations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "wiyjmFuX79AGNiROhmIJFxHC",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"workingPatternId": "xzZJYmdPHDFSxfpWaamgVR7U",
"effectiveDate": "2020-04-01",
"effectiveEndDate": "2020-04-01",
"workingPattern": {
"fullTimeHours": 40,
"standardDayHours": 8,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a working pattern allocation
Retrieves the working pattern allocation with the given ID.
Parameters
- No parameters
Returns
Returns a working pattern allocation object if a valid identifier was provided.
GET /api/working-pattern-allocations/:idcurl https://app.humaans.io/api/working-pattern-allocations/wiyjmFuX79AGNiROhmIJFxHC \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "wiyjmFuX79AGNiROhmIJFxHC",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"workingPatternId": "xzZJYmdPHDFSxfpWaamgVR7U",
"effectiveDate": "2020-04-01",
"effectiveEndDate": "2020-04-01",
"workingPattern": {
"fullTimeHours": 40,
"standardDayHours": 8,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a working pattern allocation
Parameters
-
personIdstring
The ID of the person this working pattern allocation is for.
-
effectiveDatedate | null
The date from which this working pattern allocation takes effect. If
null, the allocation is effective from the employee’s start date. When multiple allocations exist, the most recent effective date determines the current working pattern. -
workingPatternIdstring
The ID of the working pattern being assigned. Must reference a company-wide working pattern (where
personIdisnull). EitherworkingPatternIdorworkingPatternmust be provided when creating an allocation. -
workingPatternobject
The full working pattern object associated with this allocation. When creating an allocation, you can provide an inline
workingPatternobject instead of aworkingPatternIdto create a custom pattern specific to this person. -
workingPattern.namestring
The name of the working pattern.
-
workingPattern.fullTimeHoursnumber required
The number of hours that constitute full-time work over the specified
periodType. Used as the reference for calculating the FTE (Full Time Equivalent). -
workingPattern.standardDayHoursnumber required
The standard number of working hours per day. Used for calculating time away allowances and working days.
-
workingPattern.periodTypestring
The time period over which
fullTimeHoursandworkingHoursare measured. One ofweek,day, ormonth. -
workingPattern.workingHoursnumber
The total hours the employee is expected to work over the period. For fixed-hours patterns, this is calculated from the
workingPatternarray. For flexible patterns (whereworkingPatterncontains booleans), this specifies the total hours to be distributed across working days. -
workingPattern.workingPattern(boolean | number)[] required
The pattern of work as a JSON array where each position represents a day (starting from Monday). The array length must be a multiple of 7. Can be either:
- An array of numbers representing hours worked per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri 8h) - An array of booleans for flexible patterns where
trueindicates a working day (e.g.[true,true,true,true,true,false,false]for Mon-Fri flexible)
- An array of numbers representing hours worked per day (e.g.
-
workingPattern.personIdstring | null
The ID of the person this working pattern is created for. Only set for individual custom working patterns. When
null, the working pattern is a company-wide template that can be assigned to any employee.
Returns
Returns a working pattern allocation if the call succeeded. The call returns an error if parameters are invalid.
POST /api/working-pattern-allocationscurl https://app.humaans.io/api/working-pattern-allocations \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"personId":"IL3vneCYhIx0xrR6um2sy2nW","workingPatternId":"xzZJYmdPHDFSxfpWaamgVR7U","effectiveDate":"2024-01-01"}'
{
"id": "wiyjmFuX79AGNiROhmIJFxHC",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"workingPatternId": "xzZJYmdPHDFSxfpWaamgVR7U",
"effectiveDate": "2024-01-01",
"effectiveEndDate": "2020-04-01",
"workingPattern": {
"fullTimeHours": 40,
"standardDayHours": 8,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a working pattern allocation
Parameters
-
idstring
Unique identifier for the object.
-
workingPatternIdstring
The ID of the working pattern being assigned. Must reference a company-wide working pattern (where
personIdisnull). EitherworkingPatternIdorworkingPatternmust be provided when creating an allocation. -
effectiveDatedate | null
The date from which this working pattern allocation takes effect. If
null, the allocation is effective from the employee’s start date. When multiple allocations exist, the most recent effective date determines the current working pattern. -
workingPatternobject
The full working pattern object associated with this allocation. When creating an allocation, you can provide an inline
workingPatternobject instead of aworkingPatternIdto create a custom pattern specific to this person. -
workingPattern.namestring
The name of the working pattern.
-
workingPattern.fullTimeHoursnumber required
The number of hours that constitute full-time work over the specified
periodType. Used as the reference for calculating the FTE (Full Time Equivalent). -
workingPattern.standardDayHoursnumber required
The standard number of working hours per day. Used for calculating time away allowances and working days.
-
workingPattern.periodTypestring
The time period over which
fullTimeHoursandworkingHoursare measured. One ofweek,day, ormonth. -
workingPattern.workingHoursnumber
The total hours the employee is expected to work over the period. For fixed-hours patterns, this is calculated from the
workingPatternarray. For flexible patterns (whereworkingPatterncontains booleans), this specifies the total hours to be distributed across working days. -
workingPattern.workingPattern(boolean | number)[] required
The pattern of work as a JSON array where each position represents a day (starting from Monday). The array length must be a multiple of 7. Can be either:
- An array of numbers representing hours worked per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri 8h) - An array of booleans for flexible patterns where
trueindicates a working day (e.g.[true,true,true,true,true,false,false]for Mon-Fri flexible)
- An array of numbers representing hours worked per day (e.g.
-
workingPattern.personIdstring | null
The ID of the person this working pattern is created for. Only set for individual custom working patterns. When
null, the working pattern is a company-wide template that can be assigned to any employee.
Returns
Returns the working pattern allocation if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/working-pattern-allocations/:idcurl https://app.humaans.io/api/working-pattern-allocations/wiyjmFuX79AGNiROhmIJFxHC \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"effectiveDate":"2024-06-01"}'
{
"id": "wiyjmFuX79AGNiROhmIJFxHC",
"personId": "IL3vneCYhIx0xrR6um2sy2nW",
"workingPatternId": "xzZJYmdPHDFSxfpWaamgVR7U",
"effectiveDate": "2024-06-01",
"effectiveEndDate": "2020-04-01",
"workingPattern": {
"fullTimeHours": 40,
"standardDayHours": 8,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
]
},
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a working pattern allocation
Permanently deletes a working pattern allocation. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/working-pattern-allocations/:idcurl https://app.humaans.io/api/working-pattern-allocations/wiyjmFuX79AGNiROhmIJFxHC \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "wiyjmFuX79AGNiROhmIJFxHC",
"deleted": true
}Working patterns
A working pattern defines the schedule and hours an employee works.
Working patterns can be company-wide templates (where personId is null)
or custom patterns created for specific individuals.
Each pattern specifies the fullTimeHours (reference for FTE calculation),
standardDayHours, and the actual workingPattern array which can be either:
- Fixed hours: an array of numbers representing hours per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri) - Flexible: an array of booleans indicating working days, with
workingHoursspecifying total hours
To assign a working pattern to an employee, use the Working Pattern Allocations API.
GET /api/working-patterns GET /api/working-patterns/:id POST /api/working-patterns PATCH /api/working-patterns/:idDELETE /api/working-patterns/:idprivate:readprivate:writeWorking pattern object
Attributes
-
idstring
Unique identifier for the object.
-
companyIdstring
ID of the company that this object is associated to.
-
personIdstring
The ID of the person this working pattern is created for. Only set for individual custom working patterns. When
null, the working pattern is a company-wide template that can be assigned to any employee. -
namestring
The name of the working pattern.
-
summarystring
A summary describing the working pattern schedule.
-
fullTimeHoursnumber
The number of hours that constitute full-time work over the specified
periodType. Used as the reference for calculating the FTE (Full Time Equivalent). -
standardDayHoursnumber
The standard number of working hours per day. Used for calculating time away allowances and working days.
-
periodTypestring
The time period over which
fullTimeHoursandworkingHoursare measured. One ofweek,day, ormonth. -
workingHoursnumber
The total hours the employee is expected to work over the period. For fixed-hours patterns, this is calculated from the
workingPatternarray. For flexible patterns (whereworkingPatterncontains booleans), this specifies the total hours to be distributed across working days. -
workingPatternboolean[] | number[]
The pattern of work as a JSON array where each position represents a day (starting from Monday). The array length must be a multiple of 7. Can be either:
- An array of numbers representing hours worked per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri 8h) - An array of booleans for flexible patterns where
trueindicates a working day (e.g.[true,true,true,true,true,false,false]for Mon-Fri flexible)
- An array of numbers representing hours worked per day (e.g.
-
ftenumber
The Full Time Equivalent, calculated as
workingHours / fullTimeHours. Rounded to 4 decimal places. A value of 1.0 represents full-time work. -
unroundedFtenumber
The exact Full Time Equivalent before rounding. Useful for precise calculations.
-
archivedAtdate-time
When the working pattern was archived.
-
isArchivedboolean
Whether the working pattern is archived.
-
createdAtdate-time
Timestamp when the working pattern was created.
-
updatedAtdate-time
Timestamp when the working pattern was last updated.
{
"id": "MLYRjj1YdpuQp5Qe6HQsvUys",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": null,
"name": "Mon-Fri 8h/day",
"summary": "Mon-Fri (8h)",
"fullTimeHours": 40,
"standardDayHours": 8,
"periodType": "week",
"workingHours": 40,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
],
"fte": 1,
"unroundedFte": 1,
"archivedAt": "2020-01-28T08:44:42.000Z",
"isArchived": false,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}List all working patterns
Returns a list of working patterns.
Parameters
-
companyIdstring | empty
-
includeDeletedboolean
Include deleted records. For public API requests, only records deleted within the last 30 days are returned. Deleted records are returned as minimal tombstones.
-
personIdnull · $ne
The ID of the person this working pattern is created for. Only set for individual custom working patterns. When
null, the working pattern is a company-wide template that can be assigned to any employee. -
updatedAtdate | date-time · $gt $gte $lt $lte
Filter by update time. Sort by updatedAt for incremental synchronization.
-
$sortobject
-
$sort.deletedAtnumber
-
$sort.updatedAtnumber
-
$limitnumber
Limit number of results.
-
$skipnumber
Skip the specified number of results.
Returns
Returns an object whose data property contains up to $limit
working patterns. The response skips the first $skip results. Each entry is a
separate working pattern object. If no working patterns are available,
data is empty.
GET /api/working-patternscurl https://app.humaans.io/api/working-patterns \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"total": 1,
"limit": 100,
"skip": 0,
"data": [
{
"id": "MLYRjj1YdpuQp5Qe6HQsvUys",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": null,
"name": "Mon-Fri 8h/day",
"summary": "Mon-Fri (8h)",
"fullTimeHours": 40,
"standardDayHours": 8,
"periodType": "week",
"workingHours": 40,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
],
"fte": 1,
"unroundedFte": 1,
"archivedAt": "2020-01-28T08:44:42.000Z",
"isArchived": false,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}
]
}Retrieve a working pattern
Retrieves the working pattern with the given ID.
Parameters
- No parameters
Returns
Returns a working pattern object if a valid identifier was provided.
GET /api/working-patterns/:idcurl https://app.humaans.io/api/working-patterns/MLYRjj1YdpuQp5Qe6HQsvUys \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6'
{
"id": "MLYRjj1YdpuQp5Qe6HQsvUys",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": null,
"name": "Mon-Fri 8h/day",
"summary": "Mon-Fri (8h)",
"fullTimeHours": 40,
"standardDayHours": 8,
"periodType": "week",
"workingHours": 40,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
],
"fte": 1,
"unroundedFte": 1,
"archivedAt": "2020-01-28T08:44:42.000Z",
"isArchived": false,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Create a working pattern
Parameters
-
namestring
The name of the working pattern.
-
fullTimeHoursnumber required
The number of hours that constitute full-time work over the specified
periodType. Used as the reference for calculating the FTE (Full Time Equivalent). -
standardDayHoursnumber required
The standard number of working hours per day. Used for calculating time away allowances and working days.
-
periodTypestring
The time period over which
fullTimeHoursandworkingHoursare measured. One ofweek,day, ormonth. -
workingHoursnumber
The total hours the employee is expected to work over the period. For fixed-hours patterns, this is calculated from the
workingPatternarray. For flexible patterns (whereworkingPatterncontains booleans), this specifies the total hours to be distributed across working days. -
workingPatternboolean[] | number[] required
The pattern of work as a JSON array where each position represents a day (starting from Monday). The array length must be a multiple of 7. Can be either:
- An array of numbers representing hours worked per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri 8h) - An array of booleans for flexible patterns where
trueindicates a working day (e.g.[true,true,true,true,true,false,false]for Mon-Fri flexible)
- An array of numbers representing hours worked per day (e.g.
-
personIdstring | null
The ID of the person this working pattern is created for. Only set for individual custom working patterns. When
null, the working pattern is a company-wide template that can be assigned to any employee.
Returns
Returns a working pattern if the call succeeded. The call returns an error if parameters are invalid.
POST /api/working-patternscurl https://app.humaans.io/api/working-patterns \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X POST \
-d '{"fullTimeHours":40,"standardDayHours":8,"workingPattern":[8,8,8,8,8,0,0]}'
{
"id": "MLYRjj1YdpuQp5Qe6HQsvUys",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": null,
"name": "Mon-Fri 8h/day",
"summary": "Mon-Fri (8h)",
"fullTimeHours": 40,
"standardDayHours": 8,
"periodType": "week",
"workingHours": 40,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
],
"fte": 1,
"unroundedFte": 1,
"archivedAt": "2020-01-28T08:44:42.000Z",
"isArchived": false,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Update a working pattern
Parameters
-
namestring
The name of the working pattern.
-
fullTimeHoursnumber
The number of hours that constitute full-time work over the specified
periodType. Used as the reference for calculating the FTE (Full Time Equivalent). -
standardDayHoursnumber
The standard number of working hours per day. Used for calculating time away allowances and working days.
-
periodTypestring
The time period over which
fullTimeHoursandworkingHoursare measured. One ofweek,day, ormonth. -
workingHoursnumber
The total hours the employee is expected to work over the period. For fixed-hours patterns, this is calculated from the
workingPatternarray. For flexible patterns (whereworkingPatterncontains booleans), this specifies the total hours to be distributed across working days. -
workingPatternboolean[] | number[]
The pattern of work as a JSON array where each position represents a day (starting from Monday). The array length must be a multiple of 7. Can be either:
- An array of numbers representing hours worked per day (e.g.
[8,8,8,8,8,0,0]for Mon-Fri 8h) - An array of booleans for flexible patterns where
trueindicates a working day (e.g.[true,true,true,true,true,false,false]for Mon-Fri flexible)
- An array of numbers representing hours worked per day (e.g.
-
isArchivedboolean
Whether the working pattern is archived.
Returns
Returns the working pattern if the update succeeded. The call returns an error if parameters are invalid.
PATCH /api/working-patterns/:idcurl https://app.humaans.io/api/working-patterns/MLYRjj1YdpuQp5Qe6HQsvUys \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-H 'Content-Type: application/json' \
-X PATCH \
-d '{"name":"Mon-Fri 8h/day"}'
{
"id": "MLYRjj1YdpuQp5Qe6HQsvUys",
"companyId": "T7uqPFK7am4lFTZm39AmNuay",
"personId": null,
"name": "Mon-Fri 8h/day",
"summary": "Mon-Fri (8h)",
"fullTimeHours": 40,
"standardDayHours": 8,
"periodType": "week",
"workingHours": 40,
"workingPattern": [
8,
8,
8,
8,
8,
0,
0
],
"fte": 1,
"unroundedFte": 1,
"archivedAt": "2020-01-28T08:44:42.000Z",
"isArchived": false,
"createdAt": "2020-01-28T08:44:42.000Z",
"updatedAt": "2020-01-29T14:52:21.000Z"
}Delete a working pattern
Permanently deletes a working pattern. It cannot be undone.
Parameters
- No parameters
Returns
Returns an object confirming the deletion on success. Otherwise returns an error.
DELETE /api/working-patterns/:idcurl https://app.humaans.io/api/working-patterns/MLYRjj1YdpuQp5Qe6HQsvUys \
-H 'Authorization: Bearer example_PqspbWe4p2cDapt4itzAZM6' \
-X DELETE
{
"id": "MLYRjj1YdpuQp5Qe6HQsvUys",
"deleted": true
}