openapi: 3.1.0 info: title: Kombo AI Apply Unified HRIS API API version: 1.0.0 description: Endpoints for AI-powered job application features. servers: - url: https://api.kombo.dev/v1 description: Kombo EU API - url: https://api.us.kombo.dev/v1 description: Kombo US API security: - ApiKey: [] tags: - name: Unified HRIS API description: Unified endpoints to access all the HR concepts you might need. paths: /hris/provisioning-groups/{group_id}/diff: post: operationId: PostHrisProvisioningGroupsGroupIdDiff summary: Get provisioning diff description: Get the list of users to provision, deprovision, and optionally update based on the users you've already provisioned in your system. tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: group_id in: path required: true description: ID of the provisioning group (currently only `default` is allowed). schema: $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId' examples: example1: value: n39n320clr8c5amf8v83nbch requestBody: description: POST /hris/provisioning-groups/:group_id/diff Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody' examples: example1: value: provisioned_users: - origin_id: your_id_123 email: johndoe@example.com options: employee_fields: - id - first_name - last_name responses: '200': description: POST /hris/provisioning-groups/:group_id/diff Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffPositiveResponse' default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/provisioning-groups/{group_id}/setup-links: post: operationId: PostHrisProvisioningGroupsGroupIdSetupLinks summary: Create provisioning setup link (deprecated) description: "Create a new link that can be passed to the Kombo Connect SDK to open the provisioning setup UI.\n\n\n **This endpoint is deprecated!**\n\n Please use the [Create Setup Flow link endpoint](/v1/post-integrations-integration-id-setup-link) instead. It supports the full Setup Flow (including filtering, field mapping, and any other enabled steps) and works for any integration category, not just HRIS.\n" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: group_id in: path required: true description: ID of the provisioning group (currently only `default` is allowed). schema: $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId' examples: example1: value: n39n320clr8c5amf8v83nbch requestBody: description: POST /hris/provisioning-groups/:group_id/setup-links Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody' examples: example1: value: language: en responses: '200': description: POST /hris/provisioning-groups/:group_id/setup-links Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksPositiveResponse' examples: example1: value: status: success data: url: https://connect.kombo.dev/v1/setup?token=GinuMJCpUQ9xdpLmD2ocw8qdiK3qiPCizDCv754EXri2vAX4 expires_at: '2023-10-11T12:00:00.000Z' default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employees: get: operationId: GetHrisEmployees summary: Get employees description: 'Retrieve all employees. Not interested in most fields? You can use our [our Scopes feature](/scopes) to customize what data points are synced. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `employments` | ✓ Yes | ✓ Yes | | `time_off_balances` | ✓ Yes | ✓ Yes | | `manager` | n/a | ✓ Yes | | `group_memberships` | ✓ Yes | ✗ No | | `legal_entity` | n/a | ✓ Yes | | `work_location` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' schema: $ref: '#/components/schemas/GetHrisEmployeesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterRemoteIds' - name: employment_status in: query required: false description: '**(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** Filter by the `employment_status` field.' schema: $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatus' - name: employment_statuses in: query required: false description: "Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, `LEAVE` \n* `ACTIVE`: the employee is **actively employed** \n* `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process) \n* `INACTIVE`: a full-time employee is no longer employed, or, for a contract worker when their contract runs out \n* `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information) \n \n\nLeave this blank to get results matching all values." schema: $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses' - name: group_ids in: query required: false description: Filter by a comma-separated list of group IDs. We will only return employees that are members of _any_ of the groups. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterGroupIds' - name: legal_entity_ids in: query required: false description: Filter by a comma-separated list of legal entity IDs. We will only return employees that are members of _any_ of the legal entities. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterLegalEntityIds' - name: work_location_ids in: query required: false description: Filter by a comma-separated list of work location IDs. We will only return employees who are at _any_ of the work locations. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterWorkLocationIds' - name: work_emails in: query required: false description: Filter by a comma-separated list of work emails. We will only return employees who have _any_ of the work emails. The format of the emails is case-insensitive. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterWorkEmails' - name: personal_emails in: query required: false description: Filter by a comma-separated list of personal emails. We will only return employees who have _any_ of the personal emails. The format of the emails is case-insensitive. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterPersonalEmails' - name: custom_fields in: query required: false description: A JSON string with a single key-value pair like {"fieldKey":"fieldValue"} to filter employees by a specific custom field value. Note that the value must be a string, number, boolean or null and the key must be a valid custom field key. Custom fields with a value of type array or object are not supported. schema: $ref: '#/components/schemas/GetHrisEmployeesParameterCustomFields' responses: '200': description: GET /hris/employees Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisEmployeesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' employee_number: '3243422' first_name: John last_name: Doe nationality: French display_full_name: John Doe job_title: Integrations Team Lead work_email: john.doe@acme.com personal_email: john@doe.me mobile_phone_number: 801-555-4687 ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE ethnicity: BLACK_AFRICAN_AMERICAN marital_status: MARRIED employment_status: INACTIVE employment_type: FULL_TIME weekly_hours: 40 avatar: https://resources.bamboohr.com/images/photo_person_150x150.png work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 legal_entity_id: xB32bied320csBSsl3XWdlw33 manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo home_address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' bank_accounts: - account_number: '1234567890' bank_name: Commerzbank bic: COBADEFFXXX domestic_bank_routing: number: '34567890' type: DE_BANKLEITZAHL holder_name: John Doe iban: DE12345678901234567890 date_of_birth: '1986-01-01T00:00:00.000Z' start_date: '2020-04-07T00:00:00.000Z' termination_date: '2022-05-20T00:00:00.000Z' remote_created_at: '2020-04-07T12:32:01.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null custom_fields: {} integration_fields: [] remote_data: null employments: - id: 12vpXR7BeqYNWDShXRgsonnm remote_id: '859' employee_id: 26vafvWSRmbhNcxJYqjCzuJg job_title: Social Media Marketer pay_rate: 85000 pay_period: YEAR pay_frequency: SEMIMONTHLY employment_type: FULL_TIME pay_currency: EUR effective_date: '2021-01-30T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null custom_fields: {} integration_fields: [] time_off_balances: - id: FuyRuk5NqP3qTcThED3ymTuE remote_id: '124123' employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j type_id: BQJaBxRCiqN46G27VTegvkEr balance: 14 balance_unit: DAYS changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null used: 3 used_unit: DAYS remote_data: null manager: first_name: John last_name: Doe display_full_name: John Doe id: 26vafvWSRmbhNcxJYqjCzuJg employee_number: '3243422' work_email: john.doe@acme.com remote_id: '32' employment_status: INACTIVE termination_date: '2022-05-20T00:00:00.000Z' groups: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM legal_entity: id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' teams: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM work_location: id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' type: OFFICE changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' post: operationId: PostHrisEmployees summary: '[DEPRECATED] Create employee' description: "Create a new employee.\n\n\n We are deprecating this endpoint in favor of the new [create employee form](/hris/features/create-employee) endpoint.\n\n\n\n This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"work_email\": \"john.doe@acme.com\",\n \"gender\": \"MALE\",\n \"date_of_birth\": \"1986-01-01\",\n \"start_date\": \"2020-04-07\",\n \"job_title\": \"Integrations Team Lead\",\n \"home_address\": {\n \"city\": \"Berlin\",\n \"country\": \"DE\",\n \"state\": \"Berlin\",\n \"street_1\": \"Sonnenallee 63\",\n \"zip_code\": \"12045\"\n }\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /hris/employees Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeesRequestBody' examples: example1: value: first_name: John last_name: Doe work_email: john.doe@acme.com gender: MALE date_of_birth: '1986-01-01' start_date: '2020-04-07' job_title: Integrations Team Lead home_address: city: Berlin country: DE state: Berlin street_1: Sonnenallee 63 zip_code: '12045' responses: '200': description: POST /hris/employees Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeesPositiveResponse' examples: example1: value: status: success data: id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' employee_number: '3243422' first_name: John last_name: Doe nationality: French display_full_name: John Doe job_title: Integrations Team Lead work_email: john.doe@acme.com personal_email: john@doe.me mobile_phone_number: 801-555-4687 ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE ethnicity: BLACK_AFRICAN_AMERICAN marital_status: MARRIED employment_status: INACTIVE employment_type: FULL_TIME weekly_hours: 40 avatar: https://resources.bamboohr.com/images/photo_person_150x150.png work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 legal_entity_id: xB32bied320csBSsl3XWdlw33 manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo home_address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' bank_accounts: - account_number: '1234567890' bank_name: Commerzbank bic: COBADEFFXXX domestic_bank_routing: number: '34567890' type: DE_BANKLEITZAHL holder_name: John Doe iban: DE12345678901234567890 date_of_birth: '1986-01-01T00:00:00.000Z' start_date: '2020-04-07T00:00:00.000Z' termination_date: '2022-05-20T00:00:00.000Z' remote_created_at: '2020-04-07T12:32:01.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null custom_fields: {} integration_fields: [] remote_data: null warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employees/form: get: operationId: GetHrisEmployeesForm summary: Get employee form description: "Get the form for creating an employee. This form can be rendered dynamically on your frontend to allow your customers to create employees in their HRIS.\n\nFollow our [create employee guide here](/hris/features/create-employee) to learn how this form is generated and how you can use it.\n\n### Example Form\n```json\n{\n \"properties\": {\n \"firstName\": {\n \"type\": \"text\",\n \"label\": \"First Name\",\n \"required\": true,\n \"description\": \"Employee's first name\",\n \"unified_key\": \"first_name\",\n \"min_length\": 1,\n \"max_length\": 100\n },\n \"startDate\": {\n \"type\": \"date\",\n \"label\": \"Start Date\",\n \"required\": true,\n \"description\": \"Employee's start date\",\n \"unified_key\": \"start_date\"\n },\n \"workLocation\": {\n \"type\": \"object\",\n \"label\": \"Work Location\",\n \"required\": false,\n \"description\": \"Employee's work location\",\n \"unified_key\": null,\n \"properties\": {\n \"site\": {\n \"type\": \"single_select\",\n \"label\": \"Site\",\n \"required\": true,\n \"description\": \"Employee's site\",\n \"unified_key\": null,\n \"options\": {\n \"type\": \"inline\",\n \"entries\": [\n {\n \"label\": \"Site 1\",\n \"id\": \"FXrER44xubBqA9DLgZ3PFNNx\",\n \"unified_value\": \"1\",\n \"remote_id\": \"site_1\"\n },\n {\n \"label\": \"Site 2\",\n \"id\": \"2rv75UKT2XBoQXsUb9agiTUm\",\n \"unified_value\": \"2\",\n \"remote_id\": \"site_2\"\n }\n ]\n }\n },\n \"keyNumbers\": {\n \"type\": \"array\",\n \"label\": \"Key Numbers\",\n \"required\": false,\n \"description\": \"Employee's key numbers\",\n \"unified_key\": null,\n \"min_items\": 2,\n \"max_items\": 5,\n \"item_type\": {\n \"type\": \"number\",\n \"label\": \"Key Number\",\n \"required\": false,\n \"description\": \"The number of the keys which belong to the employee\",\n \"unified_key\": null,\n \"min\": 0,\n \"max\": 99\n }\n }\n }\n }\n }\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true responses: '200': description: GET /hris/employees/form Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisEmployeesFormPositiveResponse' examples: example1: value: status: success data: properties: firstName: label: First Name required: true description: Employee's first name unified_key: first_name type: text min_length: 1 max_length: 100 reg_exp: null startDate: label: Start Date required: true description: Employee's start date unified_key: start_date type: date workLocation: label: Work Location required: false description: Employee's work location unified_key: null type: object properties: site: label: Site required: true description: Employee's site unified_key: null type: single_select options: type: inline entries: - id: FXrER44xubBqA9DLgZ3PFNNx label: Site 1 unified_value: '1' remote_id: site_1 - id: 2rv75UKT2XBoQXsUb9agiTUm label: Site 2 unified_value: '2' remote_id: site_2 keyNumbers: label: Key Numbers required: false description: Employee's key numbers unified_key: null type: array item_type: label: Key Number required: false description: The number of the keys which belong to the employee unified_key: null type: number min: 0 max: 99 min_items: 2 max_items: 5 warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseHRIS' post: operationId: PostHrisEmployeesForm summary: Create employee with form description: "Create an employee, based on the form schema.\n\n\n This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"properties\": {\n \"firstName\": \"John\",\n \"startDate\": \"2025-01-01\",\n \"workLocation\": {\n \"site\": \"8e422bf8cav\",\n \"keyNumbers\": [\n 142,\n 525,\n 63\n ]\n }\n }\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /hris/employees/form Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeesFormRequestBody' examples: example1: value: properties: firstName: John startDate: '2025-01-01' workLocation: site: 8e422bf8cav keyNumbers: - 142 - 525 - 63 responses: '200': description: POST /hris/employees/form Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeesFormPositiveResponse' examples: example1: value: status: success data: id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '12345' prehire: remote_id: null warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employees/{employee_id}: patch: operationId: PatchHrisEmployeesEmployeeId summary: Update employee description: "Update an employee.\n\n\n This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"BkgfzSr5muN9cUTMD4wDQFn4\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"work_email\": \"john.doe@acme.com\",\n \"ssn\": \"555-32-6395\",\n \"tax_id\": \"12 345 678 901\",\n \"gender\": \"MALE\",\n \"marital_status\": \"MARRIED\",\n \"date_of_birth\": \"1986-01-01\",\n \"start_date\": \"2020-04-07\",\n \"termination_date\": \"2022-05-20\",\n \"job_title\": \"Integrations Team Lead\",\n \"nationality\": \"DE\",\n \"home_address\": {\n \"city\": \"Berlin\",\n \"country\": \"DE\",\n \"state\": \"Berlin\",\n \"street_1\": \"Sonnenallee 63\",\n \"zip_code\": \"12045\"\n }\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: The ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) schema: $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdParameterEmployeeId' examples: example1: value: BkgfzSr5muN9cUTMD4wDQFn4 requestBody: description: PATCH /hris/employees/:employee_id Request body content: application/json: schema: $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdRequestBody' examples: example1: value: first_name: John last_name: Doe work_email: john.doe@acme.com ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE marital_status: MARRIED date_of_birth: '1986-01-01' start_date: '2020-04-07' termination_date: '2022-05-20' job_title: Integrations Team Lead nationality: DE home_address: city: Berlin country: DE state: Berlin street_1: Sonnenallee 63 zip_code: '12045' responses: '200': description: PATCH /hris/employees/:employee_id Positive response content: application/json: schema: $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdPositiveResponse' examples: example1: value: status: success data: id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' employee_number: '3243422' first_name: John last_name: Doe nationality: French display_full_name: John Doe job_title: Integrations Team Lead work_email: john.doe@acme.com personal_email: john@doe.me mobile_phone_number: 801-555-4687 ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE ethnicity: BLACK_AFRICAN_AMERICAN marital_status: MARRIED employment_status: INACTIVE employment_type: FULL_TIME weekly_hours: 40 avatar: https://resources.bamboohr.com/images/photo_person_150x150.png work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 legal_entity_id: xB32bied320csBSsl3XWdlw33 manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo home_address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' bank_accounts: - account_number: '1234567890' bank_name: Commerzbank bic: COBADEFFXXX domestic_bank_routing: number: '34567890' type: DE_BANKLEITZAHL holder_name: John Doe iban: DE12345678901234567890 date_of_birth: '1986-01-01T00:00:00.000Z' start_date: '2020-04-07T00:00:00.000Z' termination_date: '2022-05-20T00:00:00.000Z' remote_created_at: '2020-04-07T12:32:01.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employees/{employee_id}/documents: post: operationId: PostHrisEmployeesEmployeeIdDocuments summary: Add document to employee description: "Uploads an document file for the specified employee.\n\n\n This endpoint requires the permission **Manage documents** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"category_id\": \"3Cjwu7nA7pH5cX5X1NAPmb7M\",\n \"document\": {\n \"name\": \"Frank Doe Employment Contract.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"content_type\": \"text/plain\"\n }\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: POST /hris/employees/:employee_id/documents Parameter schema: $ref: '#/components/schemas/PostHrisEmployeesEmployeeIdDocumentsParameterEmployeeId' examples: example1: value: GRKdd9dibYKKCrmGRSMJf3wu requestBody: description: POST /hris/employees/:employee_id/documents Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeesEmployeeIdDocumentsRequestBody' examples: example1: value: category_id: 3Cjwu7nA7pH5cX5X1NAPmb7M document: name: Frank Doe Employment Contract.txt data: SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= content_type: text/plain responses: '200': description: POST /hris/employees/:employee_id/documents Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeesEmployeeIdDocumentsPositiveResponse' default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employee-document-categories: get: operationId: GetHrisEmployeeDocumentCategories summary: Get employee document categories description: 'Get employee document categories. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterRemoteIds' responses: '200': description: GET /hris/employee-document-categories Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisEmployeeDocumentCategoriesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' name: Employment contract remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/teams: get: operationId: GetHrisTeams summary: Get teams (deprecated) description: "Get the teams.\n\n\n **This endpoint is deprecated!**\n\n Please use [the `/groups` endpoint](/hris/v1/get-groups) instead. It returns the same data but the naming makes more sense as the model not only includes teams but also departments and cost centers..\n\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisTeamsParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisTeamsParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisTeamsParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisTeamsParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisTeamsParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisTeamsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisTeamsParameterRemoteIds' responses: '200': description: GET /hris/teams Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisTeamsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null type: TEAM parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/groups: get: operationId: GetHrisGroups summary: Get groups description: 'Retrieve all "groups" (teams, departments, and cost centers). Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisGroupsParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisGroupsParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisGroupsParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisGroupsParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisGroupsParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisGroupsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisGroupsParameterRemoteIds' - name: types in: query required: false description: "Filter by a comma-separated list of group types: `DEPARTMENT`, `TEAM`, `COST_CENTER`, or `null` to filter groups without a type. \n\nLeave this blank to get results matching all values." schema: $ref: '#/components/schemas/GetHrisGroupsParameterTypes' - name: name_contains in: query required: false description: Filter by the `name` field. Can be used to find a group by keywords present in the group name. schema: $ref: '#/components/schemas/GetHrisGroupsParameterNameContains' responses: '200': description: GET /hris/groups Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisGroupsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null type: TEAM parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employments: get: operationId: GetHrisEmployments summary: Get employments description: 'Retrieve all employments. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisEmploymentsParameterRemoteIds' responses: '200': description: GET /hris/employments Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisEmploymentsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 12vpXR7BeqYNWDShXRgsonnm remote_id: '859' employee_id: 26vafvWSRmbhNcxJYqjCzuJg job_title: Social Media Marketer pay_rate: 85000 pay_period: YEAR pay_frequency: SEMIMONTHLY employment_type: FULL_TIME pay_currency: EUR effective_date: '2021-01-30T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null custom_fields: {} integration_fields: [] default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/locations: get: operationId: GetHrisLocations summary: Get work locations description: 'Retrieve all work locations. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisLocationsParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisLocationsParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisLocationsParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisLocationsParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisLocationsParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisLocationsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisLocationsParameterRemoteIds' - name: name_contains in: query required: false description: Filter by the `name` field. Can be used to find a location by keywords present in the location name. schema: $ref: '#/components/schemas/GetHrisLocationsParameterNameContains' responses: '200': description: GET /hris/locations Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisLocationsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' type: OFFICE changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/absence-types: get: operationId: GetHrisAbsenceTypes summary: Get absence types description: 'Retrieve all absence types. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisAbsenceTypesParameterRemoteIds' responses: '200': description: GET /hris/absence-types Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisAbsenceTypesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/time-off-balances: get: operationId: GetHrisTimeOffBalances summary: Get time off balances description: 'Retrieve all time off balances. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `type` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterRemoteIds' - name: employee_id in: query required: false description: Filter by a specific employee using their ID. schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterEmployeeId' responses: '200': description: GET /hris/time-off-balances Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisTimeOffBalancesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: FuyRuk5NqP3qTcThED3ymTuE remote_id: '124123' employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j type_id: BQJaBxRCiqN46G27VTegvkEr balance: 14 balance_unit: DAYS changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null used: 3 used_unit: DAYS remote_data: null type: id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/absences: get: operationId: GetHrisAbsences summary: Get absences description: 'Retrieve all absences. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `type` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' schema: $ref: '#/components/schemas/GetHrisAbsencesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterRemoteIds' - name: date_from in: query required: false description: Filter for all the absences that either start _or_ haven't ended yet on/after this day. If you imagine a calendar displaying absences, this defines the left-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterDateFrom' - name: date_until in: query required: false description: Filter for absences that start on or before this day (but might continue after). If you imagine a calendar displaying absences, this defines the right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterDateUntil' - name: type_ids in: query required: false description: Filter by a comma-separated list of absence type IDs. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterTypeIds' - name: employee_id in: query required: false description: Filter by a specific employee using their ID. schema: $ref: '#/components/schemas/GetHrisAbsencesParameterEmployeeId' - name: time_from in: query required: false description: '**(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for absences that either start after or start before and end after a certain time.' schema: $ref: '#/components/schemas/GetHrisAbsencesParameterTimeFrom' - name: time_until in: query required: false description: '**(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for absences that start before a certain time.' schema: $ref: '#/components/schemas/GetHrisAbsencesParameterTimeUntil' responses: '200': description: GET /hris/absences Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisAbsencesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' employee_id: JDdUy9kiH5APaGizFrgNmQjM approver_id: AgXEispYPP1BbToHpqnqcpxy start_date: '2022-08-04' end_date: '2022-08-05' start_half_day: true end_half_day: false start_time: '13:15:00' end_time: '17:00:00' amount: 2 unit: DAYS status: APPROVED employee_note: Visiting my family. type_id: xzZoKssDaMZAd62kxayzzQvD remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null type: id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null default: $ref: '#/components/responses/ErrorResponseHRIS' post: operationId: PostHrisAbsences summary: Create absence description: "Create a new absence.\n\nCheck [this page](/hris/features/creating-absences) for a detailed guide.\n\n\n This endpoint requires the permission **Manage absences** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"wXJMxwDvPAjrJ4CyqdV9\",\n \"absence_type_id\": \"3YKtQ7qedsrcCady1jSyAkY1\",\n \"start_date\": \"2019-09-17\",\n \"end_date\": \"2019-09-21\",\n \"start_time\": \"08:30:00\",\n \"end_time\": \"16:00:00\",\n \"start_half_day\": false,\n \"end_half_day\": false,\n \"employee_note\": \"Visiting the aliens\"\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /hris/absences Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisAbsencesRequestBody' examples: example1: value: employee_id: wXJMxwDvPAjrJ4CyqdV9 absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 start_date: '2019-09-17' end_date: '2019-09-21' start_time: 08:30:00 end_time: '16:00:00' start_half_day: false end_half_day: false employee_note: Visiting the aliens responses: '200': description: POST /hris/absences Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisAbsencesPositiveResponse' examples: example1: value: status: success data: id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' employee_id: JDdUy9kiH5APaGizFrgNmQjM approver_id: AgXEispYPP1BbToHpqnqcpxy start_date: '2022-08-04' end_date: '2022-08-05' start_half_day: true end_half_day: false start_time: '13:15:00' end_time: '17:00:00' amount: 2 unit: DAYS status: APPROVED employee_note: Visiting my family. type_id: xzZoKssDaMZAd62kxayzzQvD remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/absences/{absence_id}: delete: operationId: DeleteHrisAbsencesAbsenceId summary: Delete absence description: "Delete this absence.\n\n\n This endpoint requires the permission **Manage absences** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"absence_id\": \"wXJMxwDvPAjrJ4CyqdV9\"\n}\n```" tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: absence_id in: path required: true description: The Kombo ID of the absence schema: $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdParameterAbsenceId' examples: example1: value: wXJMxwDvPAjrJ4CyqdV9 requestBody: description: DELETE /hris/absences/:absence_id Request body content: application/json: schema: $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdRequestBody' examples: example1: value: {} responses: '200': description: DELETE /hris/absences/:absence_id Positive response content: application/json: schema: $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdPositiveResponse' examples: example1: value: status: success data: id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' employee_id: JDdUy9kiH5APaGizFrgNmQjM approver_id: AgXEispYPP1BbToHpqnqcpxy start_date: '2022-08-04' end_date: '2022-08-05' start_half_day: true end_half_day: false start_time: '13:15:00' end_time: '17:00:00' amount: 2 unit: DAYS status: APPROVED employee_note: Visiting my family. type_id: xzZoKssDaMZAd62kxayzzQvD remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/legal-entities: get: operationId: GetHrisLegalEntities summary: Get legal entities description: 'Retrieve all legal entites. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterRemoteIds' - name: name_contains in: query required: false description: Filter by the `name` field. Can be used to find a legal entity by keywords present in the legal entity name. schema: $ref: '#/components/schemas/GetHrisLegalEntitiesParameterNameContains' responses: '200': description: GET /hris/legal-entities Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisLegalEntitiesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/timesheets: get: operationId: GetHrisTimesheets summary: Get timesheets description: 'Get timesheets Retrieve attendance data and timesheets from HRIS tools. **Open Beta Feature:** This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation. For a detailed explanation of the data model, validation rules, time zones, payable hours, approvals, and break patterns, see the [Time & Attendance guide](/hris/features/time-and-attendance). Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterRemoteIds' - name: employee_id in: query required: false description: Returns timesheets for a specific employee. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterEmployeeId' - name: started_before in: query required: false description: Return timesheets whose start time is before the given timestamp. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterStartedBefore' - name: started_after in: query required: false description: Return timesheets whose start time is on or after the given timestamp. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterStartedAfter' - name: ended_before in: query required: false description: Return timesheets whose end time is on or before the given timestamp. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterEndedBefore' - name: ended_after in: query required: false description: Return timesheets whose end time is on or after the given timestamp. schema: $ref: '#/components/schemas/GetHrisTimesheetsParameterEndedAfter' responses: '200': description: GET /hris/timesheets Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisTimesheetsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: C1BB1C36-FE1D-4185-AAB8-0716D8FBA017 remote_id: '446655440000' employee_id: 289AD550-8659-4305-92B2-6EAA006AAB17 started_at: '2025-04-16T09:02:00.000Z' ended_at: '2025-04-16T16:59:00.000Z' timezone: -04:00 payable_hours: 8 unpaid_break_minutes: 30 breaks: - ended_at: '2025-04-16T12:30:00.000Z' paid: false started_at: '2025-04-16T12:00:00.000Z' approval_status: APPROVED approved_at: '2025-04-16T17:05:31.000Z' comment: Sprint planning & code review custom_fields: {} integration_fields: [] changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: {} default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/performance-review-cycles: get: operationId: GetHrisPerformanceReviewCycles summary: Get performance review cycles description: 'Get performance review cycles Retrieve performance review cycles data from HRIS tools. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesParameterRemoteIds' responses: '200': description: GET /hris/performance-review-cycles Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisPerformanceReviewCyclesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' name: 2025 Annual Performance Review Cycle review_period_start_date: '2025-01-01T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/performance-reviews: get: operationId: GetHrisPerformanceReviews summary: Get performance reviews description: 'Get performance reviews Retrieve performance review data from HRIS tools. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `review_cycle` | n/a | ✓ Yes | | `reviewee` | n/a | ✓ Yes | | `reviewer` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterRemoteIds' - name: types in: query required: false description: "Filter by a comma-separated list of `MANAGER`, `DIRECT_REPORT`, `PEER`, `SELF` \n\nLeave this blank to get results matching all values." schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterTypes' - name: review_cycle_ids in: query required: false description: Filter by a comma-separated list of review cycle IDs. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterReviewCycleIds' - name: reviewee_ids in: query required: false description: Filter by a comma-separated list of reviewee IDs. schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsParameterRevieweeIds' responses: '200': description: GET /hris/performance-reviews Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisPerformanceReviewsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' type: MANAGER summary_comment: Good job this year! Let's keep it up for 2024! summary_rating: ordered_options: - Needs improvement - Below expectations - Meets expectations - Exceeds expectations - Exceptional type: SINGLE_SELECT value: Exceeds expectations changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null reviewee: id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' first_name: John last_name: Doe display_full_name: John Doe work_email: john.doe@acme.com remote_deleted_at: null reviewer: id: 4EeSSSd9Fr8iiW9mPKmjEVWK remote_id: '1024' first_name: Peter last_name: Doe display_full_name: Peter Doe work_email: peter.doe@acme.com remote_deleted_at: null review_cycle: id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' name: 2025 Annual Performance Review Cycle review_period_start_date: '2025-01-01T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/skills: get: operationId: GetHrisSkills summary: Get skills description: 'Get skills **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Retrieve all skills available in the HRIS system. Skills are available on employees and job positions.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisSkillsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisSkillsParameterRemoteIds' - name: name_contains in: query required: false description: Filter by the `name` field. Can be used to find a skills by keywords present in the skill name. schema: $ref: '#/components/schemas/GetHrisSkillsParameterNameContains' responses: '200': description: GET /hris/skills Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisSkillsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' post: operationId: PostHrisSkills summary: Create skill description: 'Create skill **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Create a new skill in the HRIS system with specified name and levels. Refer to our coverage grid for support of levels.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /hris/skills Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisSkillsRequestBody' examples: example1: value: name: TypeScript Programming responses: '200': description: POST /hris/skills Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisSkillsPositiveResponse' examples: example1: value: status: success data: id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/skills/{skill_id}: patch: operationId: PatchHrisSkillsSkillId summary: Update skill description: 'Update skill **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Update an existing skill in the HRIS system.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: skill_id in: path required: true description: The ID of the skill schema: $ref: '#/components/schemas/PatchHrisSkillsSkillIdParameterSkillId' requestBody: description: PATCH /hris/skills/:skill_id Request body content: application/json: schema: $ref: '#/components/schemas/PatchHrisSkillsSkillIdRequestBody' responses: '200': description: PATCH /hris/skills/:skill_id Positive response content: application/json: schema: $ref: '#/components/schemas/PatchHrisSkillsSkillIdPositiveResponse' examples: example1: value: status: success data: id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' delete: operationId: DeleteHrisSkillsSkillId summary: Delete skill description: 'Delete skill **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Delete a skill from the HRIS system.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: skill_id in: path required: true description: The ID of the skill schema: $ref: '#/components/schemas/DeleteHrisSkillsSkillIdParameterSkillId' requestBody: description: DELETE /hris/skills/:skill_id Request body content: application/json: schema: $ref: '#/components/schemas/DeleteHrisSkillsSkillIdRequestBody' responses: '200': description: DELETE /hris/skills/:skill_id Positive response content: application/json: schema: $ref: '#/components/schemas/DeleteHrisSkillsSkillIdPositiveResponse' examples: example1: value: status: success data: id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employee-skill-assignments: get: operationId: GetHrisEmployeeSkillAssignments summary: Get employee skill assignments description: 'Get employee skill assignments **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Retrieve all employee skill assignments. These represent the skills that employees possess and their current proficiency levels.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterRemoteIds' - name: employee_ids in: query required: false description: Filter by a comma-separated list of employee IDs. schema: $ref: '#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterEmployeeIds' - name: skill_ids in: query required: false description: Filter by a comma-separated list of skill IDs. schema: $ref: '#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterSkillIds' responses: '200': description: GET /hris/employee-skill-assignments Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisEmployeeSkillAssignmentsPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 default: $ref: '#/components/responses/ErrorResponseHRIS' post: operationId: PostHrisEmployeeSkillAssignments summary: Create employee skill assignment description: 'Create employee skill assignment **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Assign a skill to an employee with a specified skill level.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /hris/employee-skill-assignments Request body content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeeSkillAssignmentsRequestBody' responses: '200': description: POST /hris/employee-skill-assignments Positive response content: application/json: schema: $ref: '#/components/schemas/PostHrisEmployeeSkillAssignmentsPositiveResponse' examples: example1: value: status: success data: id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/employee-skill-assignments/{employee_skill_assignment_id}: patch: operationId: PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentId summary: Update employee skill assignment description: 'Update employee skill assignment **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Update the skill level for an employee skill assignment.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_skill_assignment_id in: path required: true description: The ID of the employee skill assignment schema: $ref: '#/components/schemas/PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId' requestBody: description: PATCH /hris/employee-skill-assignments/:employee_skill_assignment_id Request body content: application/json: schema: $ref: '#/components/schemas/PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody' responses: '200': description: PATCH /hris/employee-skill-assignments/:employee_skill_assignment_id Positive response content: application/json: schema: $ref: '#/components/schemas/PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdPositiveResponse' examples: example1: value: status: success data: id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 default: $ref: '#/components/responses/ErrorResponseHRIS' delete: operationId: DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentId summary: Delete employee skill assignment description: 'Delete employee skill assignment **Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out. Remove a skill assignment from an employee.' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_skill_assignment_id in: path required: true description: The ID of the employee skill assignment schema: $ref: '#/components/schemas/DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId' requestBody: description: DELETE /hris/employee-skill-assignments/:employee_skill_assignment_id Request body content: application/json: schema: $ref: '#/components/schemas/DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody' responses: '200': description: DELETE /hris/employee-skill-assignments/:employee_skill_assignment_id Positive response content: application/json: schema: $ref: '#/components/schemas/DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdPositiveResponse' examples: example1: value: status: success data: id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 default: $ref: '#/components/responses/ErrorResponseHRIS' /hris/staffing-entities: get: operationId: GetHrisStaffingEntities summary: Get staffing entities description: 'Retrieve all staffing entities. Retrieve all staffing entities (positions, requisitions, and jobs) from the HRIS system. Many enterprise HRIS platforms distinguish between **positions**, **requisitions**, and **jobs** — three related but different concepts used to manage headcount and hiring. Not every HRIS uses all three, and naming varies across systems, but here is a general overview: - **Position**: A slot in the organizational structure that represents a role to be filled (or already filled) by one or more employees. Positions typically carry metadata like department, location, cost center, and reporting line. Think of it as "a chair at a desk" — it exists whether someone is sitting in it or not. - **Requisition**: A formal request to fill a position. When a manager wants to hire for an open position, they usually create a requisition that goes through an approval workflow. Requisitions are time-bound and tied to a specific hiring need. In Kombo''s data model, a requisition''s `parent_id` points to the position it was opened for. - **Job**: Some systems use "job" as a more generic or lightweight alternative to a requisition. Jobs often represent an ongoing, unlimited hiring need (e.g., a company that is always hiring for "Software Engineer") rather than a one-off backfill. This is reflected in the `OPEN_UNLIMITED` status. You can use the `model_types` filter to retrieve only the type(s) relevant to your use case. Each record''s `model_type` field tells you which of the three concepts it represents. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`' tags: - Unified HRIS API parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: cursor in: query required: false description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterCursor' - name: page_size in: query required: false description: The number of results to return per page. Maximum is 250. schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterPageSize' - name: updated_after in: query required: false description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `locations` | ✓ Yes | ✓ Yes | | `legal_entities` | ✓ Yes | ✓ Yes | | `groups` | ✓ Yes | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterUpdatedAfter' - name: include_deleted in: query required: false description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterIncludeDeleted' - name: ignore_unsupported_filters in: query required: false description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterIgnoreUnsupportedFilters' - name: ids in: query required: false description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterIds' - name: remote_ids in: query required: false description: Filter by a comma-separated list of remote IDs. schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterRemoteIds' - name: model_types in: query required: false description: "Filter by a comma-separated list of `JOB`, `POSITION`, `REQUISITION` \n\nLeave this blank to get results matching all values." schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterModelTypes' - name: statuses in: query required: false description: "Filter by a comma-separated list of `OPEN_LIMITED`, `OPEN_UNLIMITED`, `PENDING`, `FROZEN`, `FILLED`, `CLOSED` \n\nLeave this blank to get results matching all values." schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesParameterStatuses' responses: '200': description: GET /hris/staffing-entities Positive response content: application/json: schema: $ref: '#/components/schemas/GetHrisStaffingEntitiesPositiveResponse' examples: example1: value: status: success data: next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' name: Software Engineer model_type: POSITION description: Description of the position status: OPEN_UNLIMITED employment_types: - remote_label: Vollzeit unified_type: FULL_TIME number_of_openings: null parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_url: https://example.com/position/32 remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null custom_fields: {} integration_fields: [] remote_data: null locations: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ type: OFFICE legal_entities: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. groups: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM default: $ref: '#/components/responses/ErrorResponseHRIS' components: schemas: GetHrisTimeOffBalancesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. PostHrisAbsencesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employee to which the absence belongs to. The ID can be used to retrieve the employee from the `get employees` endpoint. approver_id: type: - string - 'null' description: '**(⚠️ Deprecated - We won''t increase coverage for this feature)** The Kombo ID of the employee who is responsible for approving this absence.' start_date: description: The date this absence starts in the `yyyy-MM-dd` format. type: 'null' end_date: description: The date this absence ends in the `yyyy-MM-dd` format. type: 'null' start_half_day: type: - boolean - 'null' description: '`true` if the absence starts in the middle of the day, `false` if not, and `null` if the absence type doesn''t support half-day absences. For multi-day absences, this only applies to the first day of the absence.' end_half_day: type: - boolean - 'null' description: '`true` if the absence ends in the middle of the day, `false` if not, and `null` if the absence type doesn''t support half-day absences. For multi-day absences, this only applies to the last day of the absence.' start_time: description: The time at which this absence starts. Follows the format `HH:mm:ss` (e.g., `14:45:15`). type: 'null' end_time: description: The time at which this absence ends. Follows the format `HH:mm:ss` (e.g., `14:45:15`). type: 'null' amount: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time this absence takes. unit: type: - string - 'null' enum: - HOURS - DAYS description: The unit of time for this absence. Can be `HOURS` or `DAYS`. status: anyOf: - type: string enum: - REQUESTED - APPROVED - DECLINED - CANCELLED - DELETED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The absence’s current status. In rare cases where we can’t find a clear mapping, the original string is passed through. employee_note: type: - string - 'null' description: A note the employee has added to this absence. type_id: type: - string - 'null' description: The Kombo absence type ID of this absence. remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_updated_at: description: A timestamp retrieved from the remote system, describing when the resource was last updated. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - employee_id - approver_id - start_date - end_date - start_half_day - end_half_day - start_time - end_time - amount - unit - employee_note - type_id - remote_created_at - remote_updated_at - changed_at - remote_deleted_at - remote_data examples: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' employee_id: JDdUy9kiH5APaGizFrgNmQjM approver_id: AgXEispYPP1BbToHpqnqcpxy start_date: '2022-08-04' end_date: '2022-08-05' start_half_day: true end_half_day: false start_time: '13:15:00' end_time: '17:00:00' amount: 2 unit: DAYS status: APPROVED employee_note: Visiting my family. type_id: xzZoKssDaMZAd62kxayzzQvD remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisEmployeesParameterCustomFields: type: string description: A JSON string with a single key-value pair like {"fieldKey":"fieldValue"} to filter employees by a specific custom field value. Note that the value must be a string, number, boolean or null and the key must be a valid custom field key. Custom fields with a value of type array or object are not supported. GetHrisEmploymentsParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisGroupsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisTimesheetsParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisLegalEntitiesParameterNameContains: type: string description: Filter by the `name` field. Can be used to find a legal entity by keywords present in the legal entity name. GetHrisTeamsParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The unique identifier for the employee skill assignment employee_id: type: string description: The ID of the employee skill_id: type: string description: The ID of the skill current_level: type: - string - 'null' description: The current skill level of the employee required: - id - employee_id - skill_id - current_level examples: - id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 required: - status - data GetHrisPerformanceReviewCyclesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisPerformanceReviewsParameterTypes: type: string description: "Filter by a comma-separated list of `MANAGER`, `DIRECT_REPORT`, `PEER`, `SELF` \n\nLeave this blank to get results matching all values." GetHrisLegalEntitiesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisLocationsParameterNameContains: type: string description: Filter by the `name` field. Can be used to find a location by keywords present in the location name. GetHrisEmployeeSkillAssignmentsParameterEmployeeIds: type: string description: Filter by a comma-separated list of employee IDs. GetHrisTimesheetsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisEmployeesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisEmployeeDocumentCategoriesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisGroupsParameterTypes: type: string description: "Filter by a comma-separated list of group types: `DEPARTMENT`, `TEAM`, `COST_CENTER`, or `null` to filter groups without a type. \n\nLeave this blank to get results matching all values." PatchHrisEmployeesEmployeeIdParameterEmployeeId: type: string description: The ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) GetHrisPerformanceReviewCyclesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisAbsenceTypesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString PostHrisEmployeesRequestBody: type: object properties: first_name: type: string description: The first name of the employee. last_name: type: string description: The last name of the employee. work_email: type: string description: The email address of the employee to be created. For tools where the personal email address is required, we map this input to the personal email. This is documented on a per-tool basis. format: email gender: type: string enum: - MALE - FEMALE - NON_BINARY - NOT_SPECIFIED description: The gender of the employee. job_title: type: string description: The title of the position this person is working in. home_address: type: object properties: street_1: type: string street_2: type: string city: type: string state: type: string zip_code: type: string country: type: string pattern: ^[A-Z]{2}$ description: The uppercase two-letter ISO country (e.g., `DE`). For systems that use codes in formats other than `ISO 3166-1 alpha-2`, Kombo transforms the ISO Codes to the appropriate value. description: The employee's home address. date_of_birth: description: The employee's date of birth. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString mobile_phone_number: type: string home_phone_number: type: string nationality: type: string pattern: ^[A-Z]{2}$ description: The uppercase two-letter ISO country (e.g., `DE`). For systems that use codes in formats other than `ISO 3166-1 alpha-2`, Kombo transforms the ISO Codes to the appropriate value. start_date: description: Start date of the employee. Also considered to be the hire date. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString legal_entity_id: type: string description: The Kombo ID of the legal entity the employee should be in. This field is required for certain integrations. location_id: type: string description: The Kombo ID of the location the employee should be in. This field is required for certain integrations. remote_fields: type: object properties: humaans: type: object properties: employee: type: object additionalProperties: true description: Fields that we will pass through to Humaans `Employee` object. description: Fields specific to Humaans. hibob: type: object properties: employee: type: object additionalProperties: true description: Fields that we will pass through to HiBob's `Person` endpoint. description: Fields specific to HiBob. sympa: type: object properties: GenericNewHire: type: object additionalProperties: true description: Fields that we will pass through to Sympa's `Employee` object. description: Fields specific to Sympa. silae: type: object properties: siret: type: string description: The siret of the company. The siret can be found as the remote ID of a Silae legal entity. employee: type: object additionalProperties: true description: Fields that we will passed through to Silae `Employee` object. employment: type: object additionalProperties: true description: Fields that we will passed through to Silae `Employment` object. description: Fields specific to Silae. peoplehr: type: object properties: job_role_effective_date: description: The effective date of the employee's current role. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString department: type: string description: Fields specific to PeopleHR. zohopeople: type: object properties: employee_id: type: string minLength: 1 description: A personnel code used to identify individuals working for the business. description: Fields specific to Zoho People. workday: type: object properties: job_requisition_id: type: string description: Workday job requisition ID of that the employee should be hired for. Provide either this or `position_id`. position_id: type: string description: Workday position ID of that the employee should be hired to. Provide either this or `job_requisition_id`. ssn: type: string description: The social security number of the employee. bank_account: type: object properties: iban: type: string bic: type: string bank_name: type: string required: - iban - bic - bank_name description: The employee's bank account. description: Fields specific to Workday. deel: type: object properties: candidate_id: type: string description: The unique identifier of the candidate in the ATS. candidate_link: type: string description: The link to the candidate's profile in the ATS. required: - candidate_id - candidate_link description: Fields specific to Deel. bamboohr: type: object properties: employee: type: object additionalProperties: true description: Fields that we will pass through to BambooHR `Employee` object. description: Fields specific to BambooHR. oracle: type: object properties: group_id: type: string description: The business unit group ID for which the employee should be created. It can be found as a group with the type `null`. department_id: type: string description: The department group ID for which the employee should be created. It can be found as a group with the type `DEPARTMENT`. required: - group_id - department_id description: Fields specific to Oracle HCM. adpworkforcenow: type: object properties: onboarding_template_code: type: string description: The onboarding template to be used for the created employee. View the possible values in the Kombo dashboard by clicking on the ADP Workforce Now integration and viewing the field report in the settings tab. applicant_payroll_profile_group_code: type: string description: The payroll group code (a.k.a. "Company Code") to be used for the created employee. View the possible values in the Kombo dashboard by clicking on the ADP Workforce Now integration and viewing the field report in the settings tab. manager_position_id: type: string description: The position ID of the employment of the manager. Available as mappable custom field on employments. Not the employment ID or employment remote ID! home_organization_unit_code: type: string description: The remote id of a Kombo group with type "DEPARTMENT" that will be used as the employee's home department. personal_email: type: string description: The personal email for the employee. required: - onboarding_template_code - applicant_payroll_profile_group_code description: Fields specific to ADP Workforce Now. azuread: type: object properties: password: type: string description: Azure / entra requires a password to be set when creating a user. The user has to use the password on his initial sign-in and will be forced to change the password once signed in. required: - password description: Fields specific to Azure AD/Entra ID. paycor: type: object properties: paygroupRemoteId: type: string description: '[REQUIRED] Remote ID of a Kombo Group with type "COST_CENTER"' departmentRemoteId: type: string description: '[REQUIRED] Remote ID of a Kombo Group with type "DEPARTMENT"' required: - paygroupRemoteId - departmentRemoteId description: Fields specific to Paycor. planday: type: object properties: department_remote_id: type: string description: The remote ID of the department for which the employee should be assigned to. It can be found as a group with the type `DEPARTMENT`. required: - department_remote_id description: Fields specific to PlanDay. dayforce: type: object properties: social_security_number: type: string description: The social security number of the employee pay_type: type: string description: The pay type of the employee. This needs to be a valid XRefCode from Dayforce. pay_class: type: string description: The pay class of the employee. This needs to be a valid XRefCode from Dayforce. pay_group: type: string description: The pay group of the employee. This needs to be a valid XRefCode from Dayforce. base_rate: type: number format: double minimum: -1.7976931348623157e+308 description: The base rate of the employee. role: type: string description: The role of the employee. This needs to be a valid XRefCode from Dayforce. location: type: string description: The location of the employee. This needs to be a valid XRefCode from Dayforce. department: type: string description: The department of the employee. This needs to be a valid XRefCode from Dayforce. job: type: string description: The job of the employee. This needs to be a valid XRefCode from Dayforce. country: type: string description: The country of the employee. This needs to be a valid XRefCode from Dayforce. required: - social_security_number - pay_type - pay_class - pay_group - base_rate - role - location - department - job - country description: Fields specific to Dayforce. description: Additional fields that we will pass through to specific HRIS systems. required: - first_name - last_name GetHrisLocationsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The work location’s name address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The work location’s address type: type: - string - 'null' description: The work location’s type. A freeform string. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - type - changed_at - remote_deleted_at - remote_data examples: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' type: OFFICE changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' type: OFFICE changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null required: - status - data GetHrisSkillsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisEmployeeSkillAssignmentsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The unique identifier for the employee skill assignment employee_id: type: string description: The ID of the employee skill_id: type: string description: The ID of the skill current_level: type: - string - 'null' description: The current skill level of the employee required: - id - employee_id - skill_id - current_level examples: - id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 required: - status - data DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The unique identifier for the employee skill assignment employee_id: type: string description: The ID of the employee skill_id: type: string description: The ID of the skill current_level: type: - string - 'null' description: The current skill level of the employee required: - id - employee_id - skill_id - current_level examples: - id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 required: - status - data DeleteHrisSkillsSkillIdRequestBody: type: object properties: {} GetHrisEmployeesParameterEmploymentStatus: type: string enum: - ACTIVE - PENDING - INACTIVE - LEAVE description: '**(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** Filter by the `employment_status` field.' GetHrisLegalEntitiesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisAbsencesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. PostHrisAbsencesRequestBody: type: object properties: employee_id: type: string description: The ID of the employee in Kombo or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) absence_type_id: type: string description: The ID of the absence type in Kombo (not its `remote_id`). status: type: string enum: - REQUESTED - APPROVED description: The state that the absence should be created in. Some tools may approve absences automatically if they were created for an absence type that does not require approval. default: REQUESTED start_date: description: The date that the absence starts. This is a plain date (i.e., `yyyy-MM-dd`), with all time information discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString end_date: description: When the absence ends.The date that the absence ends. This is a plain date (i.e., `yyyy-MM-dd`), with all time information discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString start_half_day: type: boolean description: '`true` if the absence should start in the middle of the day.' default: false end_half_day: type: boolean description: '`true` if the absence should end in the middle of the day.' default: false amount: type: number format: double minimum: 0 description: The amount of time of the absence. Specifying this also requires specifying `unit`. This is supported by very few tools. unit: type: string enum: - HOURS - DAYS description: The time unit of the `amount` value. Specifying this also requires specifying `amount`. employee_note: type: - string - 'null' description: A note describing the reason for this absence. start_time: type: string pattern: ^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$ description: The time of when the absence begins. Follows the format `HH:mm` or `HH:mm:ss` (e.g., `14:45:15`). If `start_time` is specified, `end_time` has to be specified as well. end_time: type: string pattern: ^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$ description: The time of when the absence ends. Follows the format `HH:mm` or `HH:mm:ss` (e.g., `14:45:15`). If `end_time` is specified, `start_time` has to be specified as well. remote_fields: type: object properties: a3innuvanomina: type: object properties: benefit_type_id: type: string enum: - Delegated Payment - No Right to Benefit - Direct payment description: 'Required for illness absences. Benefit type: Delegated Payment, No Right to Benefit, or Direct payment.' description: Fields specific to A3 Innuva Nómina. adpworkforcenow: type: object properties: employment_id: type: string description: '[Required] The employment ID of the employee that the absence will be added to.' paid_leave: type: boolean description: Whether the absence is paid or not. description: Fields specific to ADP Workforce Now. description: Additional fields that we will pass through to specific HRIS systems. required: - employee_id - absence_type_id - start_date - end_date - employee_note GetHrisPerformanceReviewCyclesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisAbsenceTypesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisTeamsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. Schema3: type: object additionalProperties: $ref: '#/components/schemas/Schema4' GetHrisGroupsParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisLocationsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisEmployeeDocumentCategoriesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisGroupsParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisTeamsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisAbsenceTypesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId: type: string description: The ID of the employee skill assignment GetHrisEmployeesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisPerformanceReviewsParameterReviewCycleIds: type: string description: Filter by a comma-separated list of review cycle IDs. GetHrisAbsencesParameterTimeFrom: description: '**(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for absences that either start after or start before and end after a certain time.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisLegalEntitiesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId: type: string description: ID of the provisioning group (currently only `default` is allowed). GetHrisPerformanceReviewsParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisTimesheetsParameterEndedBefore: description: Return timesheets whose end time is on or before the given timestamp. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisAbsencesParameterTypeIds: type: string description: Filter by a comma-separated list of absence type IDs. PostHrisProvisioningGroupsGroupIdDiffPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: users: type: object properties: to_provision: type: array items: type: object properties: email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The email address of the user. employee: type: object properties: id: type: string remote_id: type: - string - 'null' first_name: type: - string - 'null' last_name: type: - string - 'null' groups: type: array items: type: object properties: id: type: string remote_id: type: - string - 'null' name: type: - string - 'null' required: - id - remote_id - name avatar: type: - string - 'null' work_location_id: type: - string - 'null' legal_entity_id: type: - string - 'null' description: The field of the underlying employee (which ones are included depends on the `employee_fields` array you supplied). required: - email - employee description: The users we've found in the HR systems who match the provisioning filters but haven't been provisioned in your system yet. to_deprovision: type: array items: type: object properties: origin_id: type: string description: _Your_ ID for this user (that you submitted through `origin_id`). email: type: string description: The email address of the user. format: email required: - origin_id - email description: The users who've been provisioned in your system but couldn't be found in the HR system or don't match the provisioning filters. already_provisioned: type: array items: type: object properties: origin_id: type: string description: _Your_ ID for this user (that you submitted through `origin_id`). email: type: string description: The email address of the user. format: email employee: type: object properties: id: type: string remote_id: type: - string - 'null' first_name: type: - string - 'null' last_name: type: - string - 'null' groups: type: array items: type: object properties: id: type: string remote_id: type: - string - 'null' name: type: - string - 'null' required: - id - remote_id - name avatar: type: - string - 'null' work_location_id: type: - string - 'null' legal_entity_id: type: - string - 'null' description: The field of the underlying employee (which ones are included depends on the `employee_fields` array you supplied). required: - origin_id - email - employee description: The users who are in the HR system and match the provisioning filters but have already been provisioned in your system. required: - to_provision - to_deprovision - already_provisioned required: - users description: The users to provision, deprovision, and optionally update. required: - status - data GetHrisAbsencesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisTimesheetsParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisEmployeeDocumentCategoriesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisLegalEntitiesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. PatchHrisEmployeesEmployeeIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_number: type: - string - 'null' description: The employee’s organization-internal employee number. first_name: type: - string - 'null' description: The employee’s first name. last_name: type: - string - 'null' description: The employee’s last name. nationality: type: - string - 'null' description: The employee’s nationality. display_full_name: type: - string - 'null' description: The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. job_title: type: - string - 'null' description: The employee’s job title. work_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s work email address. If the email address is invalid, we will set this to `null`. personal_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s personal email address. If the email address is invalid, we will set this to `null`. mobile_phone_number: type: - string - 'null' description: The employee’s mobile phone number. ssn: type: - string - 'null' description: The employee’s social security number tax_id: type: - string - 'null' description: The employee’s tax ID. gender: anyOf: - type: string enum: - MALE - FEMALE - NON_BINARY - NOT_SPECIFIED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s gender. ethnicity: anyOf: - type: string enum: - WHITE - ASIAN - HISPANIC_LATINO - HAWAIIAN - NATIVE_AMERICAN - BLACK_AFRICAN_AMERICAN - MULTIPLE_ETHNICITIES - DECLINE_TO_SPECIFY - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s ethnicity. In rare cases where we can’t find a clear mapping, the original string is passed through. marital_status: anyOf: - type: string enum: - SINGLE - MARRIED - DOMESTIC_PARTNERSHIP - WIDOWED - DIVORCED - SEPARATED - NOT_MARRIED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s current marital status. In rare cases where we can’t find a clear mapping, the original string is passed through. employment_status: anyOf: - type: string enum: - ACTIVE - PENDING - INACTIVE - LEAVE - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment status:\n\n- `ACTIVE`: the employee is **actively employed**\n- `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process)\n- `INACTIVE`: the employee is **not actively employed** anymore\n- `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information)\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." employment_type: anyOf: - type: string enum: - FULL_TIME - PART_TIME - CONTRACT - INTERNSHIP - FREELANCE - WORKING_STUDENT - APPRENTICESHIP - TRAINING - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment type:\n\n- `FULL_TIME`: the employee is actively employed\n- `PART_TIME`: the employee is working only part of the usual working hours\n- `CONTRACT`: the employee is working temporarily under a contract\n- `INTERNSHIP`: the employee is working as an intern\n- `FREELANCE`: the employee is working as a freelancer\n- `WORKING_STUDENT`: the employee is working as a working student\n- `APPRENTICESHIP`: the employee is working in an apprenticeship\n- `TRAINING`: the employee is working in a training program\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." weekly_hours: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The employee’s weekly working hours. avatar: type: - string - 'null' description: URL to the employee’s avatar. This is either the raw URL from the HR system (in cases where it can be requested without short-lived authentication) _or_ a URL to a temporarily cached version of the file hosted by Kombo. Kombo will delete the cached file after its deletion in the source system. work_location_id: type: - string - 'null' description: The Kombo ID of the employee’s work location. The ID can be used to retrieve the work location from the `get work locations` endpoint. legal_entity_id: type: - string - 'null' description: The Kombo ID of the employee’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. manager_id: type: - string - 'null' description: The Kombo ID of the employee’s manager. The ID can be used to retrieve the manager from the `get employees` endpoint. home_address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The employee’s home address. bank_accounts: type: - array - 'null' items: type: object properties: iban: type: - string - 'null' description: The internationally unique IBAN identifying this account. If we detect a valid IBAN from the account number and this field would otherwise be empty, we will automatically populate this field. bic: type: - string - 'null' description: The internationally unique BIC/SWIFT code identifying the bank behind this account. If we detect a valid BIC from the domestic bank routing number and this field would otherwise be empty, we will automatically populate this field. account_number: type: - string - 'null' description: The bank-specific account number. Some companies use the account number field to put the IBAN here. holder_name: type: - string - 'null' description: The name of the holder of this account. bank_name: type: - string - 'null' description: The name of the bank behind this account. domestic_bank_routing: type: - object - 'null' properties: number: type: string description: Bank routing number (e.g. DE Bankleitzahl, GB Sort Code, US ABA routing number, AU BSB code). This field is not formatted and therefore might contain delimiters (eg. 01-23-45). type: type: - string - 'null' enum: - GB_SORT_CODE - DE_BANKLEITZAHL - US_ABA_ROUTING_TRANSIT_NUMBER - CA_ROUTING_NUMBER - AU_BSB_CODE - FR_RIB description: Enum of the routing type, prefixed with the iso-3166-1-alpha-2 banks origin country. If there is uncertainty about the type, it will be set to null. required: - number - type description: The employee’s bank accounts. date_of_birth: description: The employee’s date of birth. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString start_date: description: The date the employee started working for the organization. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString termination_date: description: The date when the employment ends. Can be in the past or future. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - employee_number - first_name - last_name - nationality - display_full_name - job_title - mobile_phone_number - ssn - tax_id - weekly_hours - avatar - work_location_id - legal_entity_id - manager_id - date_of_birth - start_date - termination_date - remote_created_at - changed_at - remote_deleted_at - remote_data examples: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' employee_number: '3243422' first_name: John last_name: Doe nationality: French display_full_name: John Doe job_title: Integrations Team Lead work_email: john.doe@acme.com personal_email: john@doe.me mobile_phone_number: 801-555-4687 ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE ethnicity: BLACK_AFRICAN_AMERICAN marital_status: MARRIED employment_status: INACTIVE employment_type: FULL_TIME weekly_hours: 40 avatar: https://resources.bamboohr.com/images/photo_person_150x150.png work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 legal_entity_id: xB32bied320csBSsl3XWdlw33 manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo home_address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' bank_accounts: - account_number: '1234567890' bank_name: Commerzbank bic: COBADEFFXXX domestic_bank_routing: number: '34567890' type: DE_BANKLEITZAHL holder_name: John Doe iban: DE12345678901234567890 date_of_birth: '1986-01-01T00:00:00.000Z' start_date: '2020-04-07T00:00:00.000Z' termination_date: '2022-05-20T00:00:00.000Z' remote_created_at: '2020-04-07T12:32:01.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisTimeOffBalancesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisLocationsParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisEmployeesParameterEmploymentStatuses: type: string description: "Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, `LEAVE` \n* `ACTIVE`: the employee is **actively employed** \n* `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process) \n* `INACTIVE`: a full-time employee is no longer employed, or, for a contract worker when their contract runs out \n* `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information) \n \n\nLeave this blank to get results matching all values." GetHrisAbsencesParameterEmployeeId: type: string description: Filter by a specific employee using their ID. GetHrisGroupsParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisEmployeeDocumentCategoriesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString Schema6: type: array items: $ref: '#/components/schemas/Schema4' GetHrisTeamsParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisStaffingEntitiesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisPerformanceReviewCyclesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the performance review cycle. review_period_start_date: description: The start date of the review period of the performance review cycle. It is the start date of the evaluation timeframe and the earliest date reviews can be submitted for this cycle. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - review_period_start_date - changed_at - remote_deleted_at - remote_data examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' name: 2025 Annual Performance Review Cycle review_period_start_date: '2025-01-01T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' name: 2025 Annual Performance Review Cycle review_period_start_date: '2025-01-01T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - status - data GetHrisPerformanceReviewsParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisTimesheetsParameterEmployeeId: type: string description: Returns timesheets for a specific employee. GetHrisEmploymentsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisTimesheetsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. PostHrisProvisioningGroupsGroupIdSetupLinksPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: url: type: string format: uri description: The setup link URL to pass to the Kombo Connect SDK. expires_at: description: When this link expires. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - url - expires_at examples: - url: https://connect.kombo.dev/v1/setup?token=GinuMJCpUQ9xdpLmD2ocw8qdiK3qiPCizDCv754EXri2vAX4 expires_at: '2023-10-11T12:00:00.000Z' required: - status - data DeleteHrisAbsencesAbsenceIdParameterAbsenceId: type: string description: The Kombo ID of the absence PatchHrisEmployeesEmployeeIdRequestBody: type: object properties: first_name: type: string description: The first name of the employee. last_name: type: string description: The last name of the employee. work_email: type: string description: The email address of the employee to be updated. For tools where the personal email address is required, we map this input to the personal email. This is documented on a per-tool basis. format: email gender: type: string enum: - MALE - FEMALE - NON_BINARY - NOT_SPECIFIED description: The gender of the employee. job_title: type: string description: The title of the position this person is working in. home_address: type: object properties: street_1: type: string street_2: type: string city: type: string state: type: string zip_code: type: string country: type: string pattern: ^[A-Z]{2}$ description: The uppercase two-letter ISO country (e.g., `DE`). For systems that use codes in formats other than `ISO 3166-1 alpha-2`, Kombo transforms the ISO Codes to the appropriate value. description: The employee's home address. date_of_birth: description: The employee's date of birth. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString mobile_phone_number: type: string home_phone_number: type: string nationality: type: string pattern: ^[A-Z]{2}$ description: The uppercase two-letter ISO country (e.g., `DE`). For systems that use codes in formats other than `ISO 3166-1 alpha-2`, Kombo transforms the ISO Codes to the appropriate value. start_date: description: Start date of the employee. Also considered to be the hire date. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString legal_entity_id: type: string description: The Kombo ID of the legal entity the employee should be in. This field is required for certain integrations. location_id: type: string description: The Kombo ID of the location the employee should be in. This field is required for certain integrations. remote_fields: type: object properties: humaans: type: object properties: employee: type: object additionalProperties: true description: Fields that we will pass through to Humaans `Employee` object. description: Fields specific to Humaans. hibob: type: object properties: employee: type: object additionalProperties: true description: Fields that we will pass through to HiBob's `Person` endpoint. description: Fields specific to HiBob. sympa: type: object properties: GenericNewHire: type: object additionalProperties: true description: Fields that we will pass through to Sympa's `Employee` object. description: Fields specific to Sympa. silae: type: object properties: siret: type: string description: The siret of the company. The siret can be found as the remote ID of a Silae legal entity. employee: type: object additionalProperties: true description: Fields that we will passed through to Silae `Employee` object. employment: type: object additionalProperties: true description: Fields that we will passed through to Silae `Employment` object. description: Fields specific to Silae. peoplehr: type: object properties: job_role_effective_date: description: The effective date of the employee's current role. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString department: type: string description: Fields specific to PeopleHR. zohopeople: type: object properties: employee_id: type: string minLength: 1 description: A personnel code used to identify individuals working for the business. description: Fields specific to Zoho People. workday: type: object properties: job_requisition_id: type: string description: Workday job requisition ID of that the employee should be hired for. Provide either this or `position_id`. position_id: type: string description: Workday position ID of that the employee should be hired to. Provide either this or `job_requisition_id`. ssn: type: string description: The social security number of the employee. bank_account: type: object properties: iban: type: string bic: type: string bank_name: type: string required: - iban - bic - bank_name description: The employee's bank account. description: Fields specific to Workday. deel: type: object properties: candidate_id: type: string description: The unique identifier of the candidate in the ATS. candidate_link: type: string description: The link to the candidate's profile in the ATS. required: - candidate_id - candidate_link description: Fields specific to Deel. bamboohr: type: object properties: employee: type: object additionalProperties: true description: Fields that we will pass through to BambooHR `Employee` object. description: Fields specific to BambooHR. oracle: type: object properties: group_id: type: string description: The business unit group ID for which the employee should be created. It can be found as a group with the type `null`. department_id: type: string description: The department group ID for which the employee should be created. It can be found as a group with the type `DEPARTMENT`. required: - group_id - department_id description: Fields specific to Oracle HCM. adpworkforcenow: type: object properties: onboarding_template_code: type: string description: The onboarding template to be used for the created employee. View the possible values in the Kombo dashboard by clicking on the ADP Workforce Now integration and viewing the field report in the settings tab. applicant_payroll_profile_group_code: type: string description: The payroll group code (a.k.a. "Company Code") to be used for the created employee. View the possible values in the Kombo dashboard by clicking on the ADP Workforce Now integration and viewing the field report in the settings tab. manager_position_id: type: string description: The position ID of the employment of the manager. Available as mappable custom field on employments. Not the employment ID or employment remote ID! home_organization_unit_code: type: string description: The remote id of a Kombo group with type "DEPARTMENT" that will be used as the employee's home department. personal_email: type: string description: The personal email for the employee. required: - onboarding_template_code - applicant_payroll_profile_group_code description: Fields specific to ADP Workforce Now. azuread: type: object properties: password: type: string description: Azure / entra requires a password to be set when creating a user. The user has to use the password on his initial sign-in and will be forced to change the password once signed in. required: - password description: Fields specific to Azure AD/Entra ID. paycor: type: object properties: paygroupRemoteId: type: string description: '[REQUIRED] Remote ID of a Kombo Group with type "COST_CENTER"' departmentRemoteId: type: string description: '[REQUIRED] Remote ID of a Kombo Group with type "DEPARTMENT"' required: - paygroupRemoteId - departmentRemoteId description: Fields specific to Paycor. planday: type: object properties: department_remote_id: type: string description: The remote ID of the department for which the employee should be assigned to. It can be found as a group with the type `DEPARTMENT`. required: - department_remote_id description: Fields specific to PlanDay. dayforce: type: object properties: social_security_number: type: string description: The social security number of the employee pay_type: type: string description: The pay type of the employee. This needs to be a valid XRefCode from Dayforce. pay_class: type: string description: The pay class of the employee. This needs to be a valid XRefCode from Dayforce. pay_group: type: string description: The pay group of the employee. This needs to be a valid XRefCode from Dayforce. base_rate: type: number format: double minimum: -1.7976931348623157e+308 description: The base rate of the employee. role: type: string description: The role of the employee. This needs to be a valid XRefCode from Dayforce. location: type: string description: The location of the employee. This needs to be a valid XRefCode from Dayforce. department: type: string description: The department of the employee. This needs to be a valid XRefCode from Dayforce. job: type: string description: The job of the employee. This needs to be a valid XRefCode from Dayforce. country: type: string description: The country of the employee. This needs to be a valid XRefCode from Dayforce. required: - social_security_number - pay_type - pay_class - pay_group - base_rate - role - location - department - job - country description: Fields specific to Dayforce. description: Additional fields that we will pass through to specific HRIS systems. ssn: type: string description: The social security number of the employee. marital_status: type: string enum: - SINGLE - MARRIED - DOMESTIC_PARTNERSHIP - WIDOWED - DIVORCED - SEPARATED - NOT_MARRIED description: The marital status of an employee. termination_date: description: The date on which the employment ends. This date can be in the past or in the future. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString tax_id: type: string description: Tax ID of the employee. Most countries have different formats of that. In Germany, this is the `Steuer ID` and in the US it's the `TIN`. required: - work_email GetHrisStaffingEntitiesParameterModelTypes: type: string description: "Filter by a comma-separated list of `JOB`, `POSITION`, `REQUISITION` \n\nLeave this blank to get results matching all values." GetHrisTimeOffBalancesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisStaffingEntitiesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisTimeOffBalancesParameterEmployeeId: type: string description: Filter by a specific employee using their ID. GetHrisEmploymentsParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisAbsenceTypesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisLegalEntitiesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The legal entity’s name. address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The legal entity’s address. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - changed_at - remote_deleted_at - remote_data examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - status - data GetHrisTimesheetsParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisEmployeeDocumentCategoriesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisEmploymentsParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisLocationsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisEmployeeSkillAssignmentsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisTimeOffBalancesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisEmployeeDocumentCategoriesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The employee document category name. For example, "Employment contract". remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - id - remote_id - name - remote_data - changed_at - remote_deleted_at examples: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' name: Employment contract remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' name: Employment contract remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - status - data GetHrisPerformanceReviewCyclesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisGroupsParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisTimesheetsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employee to which the timesheet belongs. The ID can be used to retrieve the employee from the `get employees` endpoint. started_at: description: Start time of the shift, converted into UTC time zone. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString ended_at: description: End time of the shift, converted into UTC time zone. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString timezone: type: - string - 'null' pattern: ^[+-](?:0\d|1[0-4]):[0-5]\d$ description: The ISO 8601 numeric UTC offset of the timesheet location in the format ±HH:MM (e.g., "+02:00", "-05:30"). If null, the original offset information was not available. You can use this to display the right timezone for the timesheet in the UI. payable_hours: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: Payable hours including grace periods - only if available in the HRIS. Won't be calculated through Kombo. unpaid_break_minutes: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: Unpaid break in minutes - will be from the HRIS or calculated by Kombo if we have concrete unpaid break times. breaks: type: - array - 'null' items: type: object properties: ended_at: anyOf: - description: YYYY-MM-DDTHH:mm:ss.sssZ type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString - type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$ description: End time of the break. paid: type: boolean description: Whether the break is paid or unpaid. started_at: anyOf: - description: YYYY-MM-DDTHH:mm:ss.sssZ type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString - type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$ description: Start time of the break. required: - ended_at - paid - started_at description: Concrete times of the breaks. approval_status: type: - string - 'null' description: Approval status of the shift. Can be PENDING, APPROVED, REJECTED, or null. approved_at: description: The time when the shift was approved. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString comment: type: - string - 'null' description: Comment on the shift. custom_fields: type: - object - 'null' additionalProperties: true description: A key-value store of fields not covered by the schema. [Read more](/custom-fields) integration_fields: type: array items: type: object properties: id: type: string description: The globally unique ID of this object. key: type: string description: The key of the field in the remote system. type: type: string enum: - DEFAULT - CUSTOM description: '- `DEFAULT`: static fields in the remote system. - `CUSTOM`: fields that are created/editable by the user.' value: type: 'null' description: The field's value. label: type: - string - 'null' description: The label of the field. (not always available) required: - id - key - type - label description: An array of selected passthrough integration fields. [Read more](/integration-fields) examples: - - id: 5NVFhMpB9Ah6by44tzNjZLyE key: firstName type: DEFAULT value: Frank label: First Name - id: 8nuajYpoRd5GnxEQaaWKUDYQ key: customTshirtSize type: CUSTOM value: XL label: T-Shirt Size changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - employee_id - started_at - ended_at - timezone - payable_hours - unpaid_break_minutes - approval_status - approved_at - comment - custom_fields - integration_fields - changed_at - remote_deleted_at - remote_data examples: - id: C1BB1C36-FE1D-4185-AAB8-0716D8FBA017 remote_id: '446655440000' employee_id: 289AD550-8659-4305-92B2-6EAA006AAB17 started_at: '2025-04-16T09:02:00.000Z' ended_at: '2025-04-16T16:59:00.000Z' timezone: -04:00 payable_hours: 8 unpaid_break_minutes: 30 breaks: - ended_at: '2025-04-16T12:30:00.000Z' paid: false started_at: '2025-04-16T12:00:00.000Z' approval_status: APPROVED approved_at: '2025-04-16T17:05:31.000Z' comment: Sprint planning & code review custom_fields: {} integration_fields: [] changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: {} required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: C1BB1C36-FE1D-4185-AAB8-0716D8FBA017 remote_id: '446655440000' employee_id: 289AD550-8659-4305-92B2-6EAA006AAB17 started_at: '2025-04-16T09:02:00.000Z' ended_at: '2025-04-16T16:59:00.000Z' timezone: -04:00 payable_hours: 8 unpaid_break_minutes: 30 breaks: - ended_at: '2025-04-16T12:30:00.000Z' paid: false started_at: '2025-04-16T12:00:00.000Z' approval_status: APPROVED approved_at: '2025-04-16T17:05:31.000Z' comment: Sprint planning & code review custom_fields: {} integration_fields: [] changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: {} required: - status - data PatchHrisSkillsSkillIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: string description: The name of the skill. description: type: - string - 'null' description: The description of the skill. ordered_levels: type: - array - 'null' items: type: string description: List of available skill levels in order of proficiency (e.g., ["Beginner", "Intermediate", "Advanced"]). changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - description - ordered_levels - changed_at - remote_deleted_at - remote_data examples: - id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - status - data PostHrisProvisioningGroupsGroupIdDiffParameterGroupId: type: string description: ID of the provisioning group (currently only `default` is allowed). GetHrisEmployeesParameterPersonalEmails: type: string description: Filter by a comma-separated list of personal emails. We will only return employees who have _any_ of the personal emails. The format of the emails is case-insensitive. GetHrisAbsencesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employee to which the absence belongs to. The ID can be used to retrieve the employee from the `get employees` endpoint. approver_id: type: - string - 'null' description: '**(⚠️ Deprecated - We won''t increase coverage for this feature)** The Kombo ID of the employee who is responsible for approving this absence.' start_date: description: The date this absence starts in the `yyyy-MM-dd` format. type: 'null' end_date: description: The date this absence ends in the `yyyy-MM-dd` format. type: 'null' start_half_day: type: - boolean - 'null' description: '`true` if the absence starts in the middle of the day, `false` if not, and `null` if the absence type doesn''t support half-day absences. For multi-day absences, this only applies to the first day of the absence.' end_half_day: type: - boolean - 'null' description: '`true` if the absence ends in the middle of the day, `false` if not, and `null` if the absence type doesn''t support half-day absences. For multi-day absences, this only applies to the last day of the absence.' start_time: description: The time at which this absence starts. Follows the format `HH:mm:ss` (e.g., `14:45:15`). type: 'null' end_time: description: The time at which this absence ends. Follows the format `HH:mm:ss` (e.g., `14:45:15`). type: 'null' amount: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time this absence takes. unit: type: - string - 'null' enum: - HOURS - DAYS description: The unit of time for this absence. Can be `HOURS` or `DAYS`. status: anyOf: - type: string enum: - REQUESTED - APPROVED - DECLINED - CANCELLED - DELETED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The absence’s current status. In rare cases where we can’t find a clear mapping, the original string is passed through. employee_note: type: - string - 'null' description: A note the employee has added to this absence. type_id: type: - string - 'null' description: The Kombo absence type ID of this absence. remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_updated_at: description: A timestamp retrieved from the remote system, describing when the resource was last updated. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' type: type: - object - 'null' properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The absence’s name. unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the absence. half_days_supported: type: - boolean - 'null' description: Whether the integration supports half-day absences (represented through `start_half_day` and `end_half_day`) for this absence type. exact_times_supported: type: - boolean - 'null' description: '`true` if the system supports exact times (absences with a `start_time` and an `end_time`) for this absence, `false` if not.' remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - id - remote_id - name - unit - half_days_supported - exact_times_supported - remote_data - changed_at - remote_deleted_at examples: - id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - id - remote_id - employee_id - approver_id - start_date - end_date - start_half_day - end_half_day - start_time - end_time - amount - unit - employee_note - type_id - remote_created_at - remote_updated_at - changed_at - remote_deleted_at - remote_data - type required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' employee_id: JDdUy9kiH5APaGizFrgNmQjM approver_id: AgXEispYPP1BbToHpqnqcpxy start_date: '2022-08-04' end_date: '2022-08-05' start_half_day: true end_half_day: false start_time: '13:15:00' end_time: '17:00:00' amount: 2 unit: DAYS status: APPROVED employee_note: Visiting my family. type_id: xzZoKssDaMZAd62kxayzzQvD remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null type: id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - status - data GetHrisEmployeesParameterGroupIds: type: string description: Filter by a comma-separated list of group IDs. We will only return employees that are members of _any_ of the groups. GetHrisAbsencesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisPerformanceReviewCyclesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisEmployeeSkillAssignmentsParameterSkillIds: type: string description: Filter by a comma-separated list of skill IDs. PostHrisSkillsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: string description: The name of the skill. description: type: - string - 'null' description: The description of the skill. ordered_levels: type: - array - 'null' items: type: string description: List of available skill levels in order of proficiency (e.g., ["Beginner", "Intermediate", "Advanced"]). changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - description - ordered_levels - changed_at - remote_deleted_at - remote_data examples: - id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - status - data GetHrisLegalEntitiesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisAbsencesParameterTimeUntil: description: '**(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for absences that start before a certain time.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisEmployeesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisEmployeesParameterWorkLocationIds: type: string description: Filter by a comma-separated list of work location IDs. We will only return employees who are at _any_ of the work locations. GetHrisTimeOffBalancesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `type` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisTeamsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the group. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString type: type: - string - 'null' enum: - DEPARTMENT - TEAM - COST_CENTER description: Type of the group. parent_id: type: - string - 'null' description: The Kombo ID of the group’s parent group in the organizational structure. The ID can be used to retrieve the group from the `get groups` endpoint. remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - changed_at - remote_deleted_at - type - parent_id - remote_data examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null type: TEAM parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_data: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null type: TEAM parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_data: null required: - status - data PostHrisEmployeesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_number: type: - string - 'null' description: The employee’s organization-internal employee number. first_name: type: - string - 'null' description: The employee’s first name. last_name: type: - string - 'null' description: The employee’s last name. nationality: type: - string - 'null' description: The employee’s nationality. display_full_name: type: - string - 'null' description: The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. job_title: type: - string - 'null' description: The employee’s job title. work_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s work email address. If the email address is invalid, we will set this to `null`. personal_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s personal email address. If the email address is invalid, we will set this to `null`. mobile_phone_number: type: - string - 'null' description: The employee’s mobile phone number. ssn: type: - string - 'null' description: The employee’s social security number tax_id: type: - string - 'null' description: The employee’s tax ID. gender: anyOf: - type: string enum: - MALE - FEMALE - NON_BINARY - NOT_SPECIFIED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s gender. ethnicity: anyOf: - type: string enum: - WHITE - ASIAN - HISPANIC_LATINO - HAWAIIAN - NATIVE_AMERICAN - BLACK_AFRICAN_AMERICAN - MULTIPLE_ETHNICITIES - DECLINE_TO_SPECIFY - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s ethnicity. In rare cases where we can’t find a clear mapping, the original string is passed through. marital_status: anyOf: - type: string enum: - SINGLE - MARRIED - DOMESTIC_PARTNERSHIP - WIDOWED - DIVORCED - SEPARATED - NOT_MARRIED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s current marital status. In rare cases where we can’t find a clear mapping, the original string is passed through. employment_status: anyOf: - type: string enum: - ACTIVE - PENDING - INACTIVE - LEAVE - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment status:\n\n- `ACTIVE`: the employee is **actively employed**\n- `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process)\n- `INACTIVE`: the employee is **not actively employed** anymore\n- `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information)\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." employment_type: anyOf: - type: string enum: - FULL_TIME - PART_TIME - CONTRACT - INTERNSHIP - FREELANCE - WORKING_STUDENT - APPRENTICESHIP - TRAINING - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment type:\n\n- `FULL_TIME`: the employee is actively employed\n- `PART_TIME`: the employee is working only part of the usual working hours\n- `CONTRACT`: the employee is working temporarily under a contract\n- `INTERNSHIP`: the employee is working as an intern\n- `FREELANCE`: the employee is working as a freelancer\n- `WORKING_STUDENT`: the employee is working as a working student\n- `APPRENTICESHIP`: the employee is working in an apprenticeship\n- `TRAINING`: the employee is working in a training program\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." weekly_hours: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The employee’s weekly working hours. avatar: type: - string - 'null' description: URL to the employee’s avatar. This is either the raw URL from the HR system (in cases where it can be requested without short-lived authentication) _or_ a URL to a temporarily cached version of the file hosted by Kombo. Kombo will delete the cached file after its deletion in the source system. work_location_id: type: - string - 'null' description: The Kombo ID of the employee’s work location. The ID can be used to retrieve the work location from the `get work locations` endpoint. legal_entity_id: type: - string - 'null' description: The Kombo ID of the employee’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. manager_id: type: - string - 'null' description: The Kombo ID of the employee’s manager. The ID can be used to retrieve the manager from the `get employees` endpoint. home_address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The employee’s home address. bank_accounts: type: - array - 'null' items: type: object properties: iban: type: - string - 'null' description: The internationally unique IBAN identifying this account. If we detect a valid IBAN from the account number and this field would otherwise be empty, we will automatically populate this field. bic: type: - string - 'null' description: The internationally unique BIC/SWIFT code identifying the bank behind this account. If we detect a valid BIC from the domestic bank routing number and this field would otherwise be empty, we will automatically populate this field. account_number: type: - string - 'null' description: The bank-specific account number. Some companies use the account number field to put the IBAN here. holder_name: type: - string - 'null' description: The name of the holder of this account. bank_name: type: - string - 'null' description: The name of the bank behind this account. domestic_bank_routing: type: - object - 'null' properties: number: type: string description: Bank routing number (e.g. DE Bankleitzahl, GB Sort Code, US ABA routing number, AU BSB code). This field is not formatted and therefore might contain delimiters (eg. 01-23-45). type: type: - string - 'null' enum: - GB_SORT_CODE - DE_BANKLEITZAHL - US_ABA_ROUTING_TRANSIT_NUMBER - CA_ROUTING_NUMBER - AU_BSB_CODE - FR_RIB description: Enum of the routing type, prefixed with the iso-3166-1-alpha-2 banks origin country. If there is uncertainty about the type, it will be set to null. required: - number - type description: The employee’s bank accounts. date_of_birth: description: The employee’s date of birth. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString start_date: description: The date the employee started working for the organization. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString termination_date: description: The date when the employment ends. Can be in the past or future. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString custom_fields: type: - object - 'null' additionalProperties: true description: A key-value store of fields not covered by the schema. [Read more](/custom-fields) integration_fields: type: array items: type: object properties: id: type: string description: The globally unique ID of this object. key: type: string description: The key of the field in the remote system. type: type: string enum: - DEFAULT - CUSTOM description: '- `DEFAULT`: static fields in the remote system. - `CUSTOM`: fields that are created/editable by the user.' value: type: 'null' description: The field's value. label: type: - string - 'null' description: The label of the field. (not always available) required: - id - key - type - label description: An array of selected passthrough integration fields. [Read more](/integration-fields) examples: - - id: 5NVFhMpB9Ah6by44tzNjZLyE key: firstName type: DEFAULT value: Frank label: First Name - id: 8nuajYpoRd5GnxEQaaWKUDYQ key: customTshirtSize type: CUSTOM value: XL label: T-Shirt Size remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - employee_number - first_name - last_name - nationality - display_full_name - job_title - mobile_phone_number - ssn - tax_id - weekly_hours - avatar - work_location_id - legal_entity_id - manager_id - date_of_birth - start_date - termination_date - remote_created_at - changed_at - remote_deleted_at - custom_fields - integration_fields - remote_data examples: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' employee_number: '3243422' first_name: John last_name: Doe nationality: French display_full_name: John Doe job_title: Integrations Team Lead work_email: john.doe@acme.com personal_email: john@doe.me mobile_phone_number: 801-555-4687 ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE ethnicity: BLACK_AFRICAN_AMERICAN marital_status: MARRIED employment_status: INACTIVE employment_type: FULL_TIME weekly_hours: 40 avatar: https://resources.bamboohr.com/images/photo_person_150x150.png work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 legal_entity_id: xB32bied320csBSsl3XWdlw33 manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo home_address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' bank_accounts: - account_number: '1234567890' bank_name: Commerzbank bic: COBADEFFXXX domestic_bank_routing: number: '34567890' type: DE_BANKLEITZAHL holder_name: John Doe iban: DE12345678901234567890 date_of_birth: '1986-01-01T00:00:00.000Z' start_date: '2020-04-07T00:00:00.000Z' termination_date: '2022-05-20T00:00:00.000Z' remote_created_at: '2020-04-07T12:32:01.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null custom_fields: {} integration_fields: [] remote_data: null warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisSkillsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: string description: The name of the skill. description: type: - string - 'null' description: The description of the skill. ordered_levels: type: - array - 'null' items: type: string description: List of available skill levels in order of proficiency (e.g., ["Beginner", "Intermediate", "Advanced"]). changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - description - ordered_levels - changed_at - remote_deleted_at - remote_data examples: - id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - status - data GetHrisLegalEntitiesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. Schema5: type: object additionalProperties: $ref: '#/components/schemas/Schema4' GetHrisPerformanceReviewsParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisStaffingEntitiesParameterStatuses: type: string description: "Filter by a comma-separated list of `OPEN_LIMITED`, `OPEN_UNLIMITED`, `PENDING`, `FROZEN`, `FILLED`, `CLOSED` \n\nLeave this blank to get results matching all values." GetHrisEmploymentsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employment’s employee. The ID can be used to retrieve the employee from the `get employees` endpoint. job_title: type: - string - 'null' description: This field can contain historic job titles. Please use the `job_title` field on the employee for the active job title of an employee. pay_rate: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The monetary amount paid to an employee. pay_period: anyOf: - type: string enum: - HOUR - DAY - WEEK - TWO_WEEKS - HALF_MONTH - MONTH - TWO_MONTHS - QUARTER - HALF_YEAR - YEAR - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: 'The time interval which the `pay_rate` is describing. A `pay_rate` value of `12000` with a `pay_period` of `YEAR` would indicate that the employee receives 12000 over the course of a year. In rare cases where we can’t find a clear mapping, the original string is passed through.' pay_frequency: anyOf: - type: string enum: - DAILY - WEEKLY - BIWEEKLY - MONTHLY - SEMIMONTHLY - QUARTERLY - SEMIANNUALLY - ANNUALLY - PRO_RATA - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: 'The time interval at which the employee receives payment. A `pay_rate` of `12000`, with a `pay_period` of `YEAR`, and a `pay_frequency` of `MONTHLY` would indicate that the employee is paid 1000 every month. In rare cases where we can’t find a clear mapping, the original string is passed through.' employment_type: anyOf: - type: string enum: - FULL_TIME - PART_TIME - CONTRACT - INTERNSHIP - FREELANCE - WORKING_STUDENT - APPRENTICESHIP - TRAINING - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment type:\n\n- `FULL_TIME`: the employee is actively employed\n- `PART_TIME`: the employee is working only part of the usual working hours\n- `CONTRACT`: the employee is working temporarily under a contract\n- `INTERNSHIP`: the employee is working as an intern\n- `FREELANCE`: the employee is working as a freelancer\n- `WORKING_STUDENT`: the employee is working as a working student\n- `APPRENTICESHIP`: the employee is working in an apprenticeship\n- `TRAINING`: the employee is working in a training program\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." pay_currency: type: - string - 'null' description: The currency that the employee is paid in. Usually returned in [ISO 4217 currency codes](https://www.iso.org/iso-4217-currency-codes.html). effective_date: description: The date of when the employment started. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' custom_fields: type: - object - 'null' additionalProperties: true description: A key-value store of fields not covered by the schema. [Read more](/custom-fields) integration_fields: type: array items: type: object properties: id: type: string description: The globally unique ID of this object. key: type: string description: The key of the field in the remote system. type: type: string enum: - DEFAULT - CUSTOM description: '- `DEFAULT`: static fields in the remote system. - `CUSTOM`: fields that are created/editable by the user.' value: type: 'null' description: The field's value. label: type: - string - 'null' description: The label of the field. (not always available) required: - id - key - type - label description: An array of selected passthrough integration fields. [Read more](/integration-fields) examples: - - id: 5NVFhMpB9Ah6by44tzNjZLyE key: firstName type: DEFAULT value: Frank label: First Name - id: 8nuajYpoRd5GnxEQaaWKUDYQ key: customTshirtSize type: CUSTOM value: XL label: T-Shirt Size required: - id - remote_id - employee_id - job_title - pay_rate - pay_currency - effective_date - changed_at - remote_deleted_at - remote_data - custom_fields - integration_fields examples: - id: 12vpXR7BeqYNWDShXRgsonnm remote_id: '859' employee_id: 26vafvWSRmbhNcxJYqjCzuJg job_title: Social Media Marketer pay_rate: 85000 pay_period: YEAR pay_frequency: SEMIMONTHLY employment_type: FULL_TIME pay_currency: EUR effective_date: '2021-01-30T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null custom_fields: {} integration_fields: [] required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 12vpXR7BeqYNWDShXRgsonnm remote_id: '859' employee_id: 26vafvWSRmbhNcxJYqjCzuJg job_title: Social Media Marketer pay_rate: 85000 pay_period: YEAR pay_frequency: SEMIMONTHLY employment_type: FULL_TIME pay_currency: EUR effective_date: '2021-01-30T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null custom_fields: {} integration_fields: [] required: - status - data GetHrisTeamsParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisEmployeesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisAbsencesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisAbsencesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisLocationsParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisAbsenceTypesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Schema4: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 - type: boolean - $ref: '#/components/schemas/Schema5' - $ref: '#/components/schemas/Schema6' DeleteHrisSkillsSkillIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: string description: The name of the skill. description: type: - string - 'null' description: The description of the skill. ordered_levels: type: - array - 'null' items: type: string description: List of available skill levels in order of proficiency (e.g., ["Beginner", "Intermediate", "Advanced"]). changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - description - ordered_levels - changed_at - remote_deleted_at - remote_data examples: - id: 28KMdr68N8kG9EzLwjsN9aoz remote_id: '238476582' name: TypeScript Programming description: The ability understand and write TypeScript code. ordered_levels: - Proficiency Level 1 - Proficiency Level 2 - Proficiency Level 3 - Proficiency Level 4 - Proficiency Level 5 changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null required: - status - data GetHrisPerformanceReviewCyclesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisPerformanceReviewsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. GetHrisTimeOffBalancesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisStaffingEntitiesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. DeleteHrisAbsencesAbsenceIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employee to which the absence belongs to. The ID can be used to retrieve the employee from the `get employees` endpoint. approver_id: type: - string - 'null' description: '**(⚠️ Deprecated - We won''t increase coverage for this feature)** The Kombo ID of the employee who is responsible for approving this absence.' start_date: description: The date this absence starts in the `yyyy-MM-dd` format. type: 'null' end_date: description: The date this absence ends in the `yyyy-MM-dd` format. type: 'null' start_half_day: type: - boolean - 'null' description: '`true` if the absence starts in the middle of the day, `false` if not, and `null` if the absence type doesn''t support half-day absences. For multi-day absences, this only applies to the first day of the absence.' end_half_day: type: - boolean - 'null' description: '`true` if the absence ends in the middle of the day, `false` if not, and `null` if the absence type doesn''t support half-day absences. For multi-day absences, this only applies to the last day of the absence.' start_time: description: The time at which this absence starts. Follows the format `HH:mm:ss` (e.g., `14:45:15`). type: 'null' end_time: description: The time at which this absence ends. Follows the format `HH:mm:ss` (e.g., `14:45:15`). type: 'null' amount: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time this absence takes. unit: type: - string - 'null' enum: - HOURS - DAYS description: The unit of time for this absence. Can be `HOURS` or `DAYS`. status: anyOf: - type: string enum: - REQUESTED - APPROVED - DECLINED - CANCELLED - DELETED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The absence’s current status. In rare cases where we can’t find a clear mapping, the original string is passed through. employee_note: type: - string - 'null' description: A note the employee has added to this absence. type_id: type: - string - 'null' description: The Kombo absence type ID of this absence. remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_updated_at: description: A timestamp retrieved from the remote system, describing when the resource was last updated. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - employee_id - approver_id - start_date - end_date - start_half_day - end_half_day - start_time - end_time - amount - unit - employee_note - type_id - remote_created_at - remote_updated_at - changed_at - remote_deleted_at - remote_data examples: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' employee_id: JDdUy9kiH5APaGizFrgNmQjM approver_id: AgXEispYPP1BbToHpqnqcpxy start_date: '2022-08-04' end_date: '2022-08-05' start_half_day: true end_half_day: false start_time: '13:15:00' end_time: '17:00:00' amount: 2 unit: DAYS status: APPROVED employee_note: Visiting my family. type_id: xzZoKssDaMZAd62kxayzzQvD remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisLocationsParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisPerformanceReviewsParameterRevieweeIds: type: string description: Filter by a comma-separated list of reviewee IDs. GetHrisGroupsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the group. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString type: type: - string - 'null' enum: - DEPARTMENT - TEAM - COST_CENTER description: Type of the group. parent_id: type: - string - 'null' description: The Kombo ID of the group’s parent group in the organizational structure. The ID can be used to retrieve the group from the `get groups` endpoint. remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - changed_at - remote_deleted_at - type - parent_id - remote_data examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null type: TEAM parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_data: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null type: TEAM parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_data: null required: - status - data GetHrisGroupsParameterNameContains: type: string description: Filter by the `name` field. Can be used to find a group by keywords present in the group name. GetHrisAbsencesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisTeamsParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisAbsencesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `type` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisAbsencesParameterDateUntil: description: Filter for absences that start on or before this day (but might continue after). If you imagine a calendar displaying absences, this defines the right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisPerformanceReviewCyclesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisStaffingEntitiesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. GetHrisEmployeeSkillAssignmentsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisGroupsParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisEmployeesParameterLegalEntityIds: type: string description: Filter by a comma-separated list of legal entity IDs. We will only return employees that are members of _any_ of the legal entities. PostHrisProvisioningGroupsGroupIdDiffRequestBody: type: object properties: provisioned_users: type: array items: type: object properties: origin_id: type: string description: _Your_ ID for this user (_not_ an ID retrieved from Kombo). email: type: string description: This user's email address. format: email required: - origin_id - email description: Array of the already provisioned users in your system. options: type: object properties: employee_fields: type: array items: type: string enum: - id - remote_id - first_name - last_name - groups - avatar - work_location_id - legal_entity_id description: The employee fields relevant for your use case. required: - employee_fields description: Options to customize what we return. required: - provisioned_users - options GetHrisGroupsParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody: type: object properties: {} Schema2: discriminator: propertyName: type anyOf: - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: text min_length: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_length: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 reg_exp: type: - string - 'null' required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: number min: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: date required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: single_select options: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: inline entries: type: array items: type: object properties: id: type: string label: type: string unified_value: type: string remote_id: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 required: - id - label - remote_id required: - type - entries - type: object properties: type: type: string const: referenced link: type: string required: - type - link required: - label - required - type - options - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' type: type: string const: multi_select min_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 options: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: inline entries: type: array items: type: object properties: id: type: string label: type: string unified_value: type: string remote_id: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 required: - id - label - remote_id required: - type - entries - type: object properties: type: type: string const: referenced link: type: string required: - type - link required: - label - required - type - options - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: checkbox required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: object properties: $ref: '#/components/schemas/Schema1' required: - label - required - type - properties - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: array item_type: $ref: '#/components/schemas/Schema2' min_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - label - required - type - item_type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: file file_restrictions: type: object properties: accepted_mime_types: type: array items: type: string max_file_size: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - accepted_mime_types required: - label - required - type - file_restrictions PostHrisEmployeesEmployeeIdDocumentsParameterEmployeeId: type: string GetHrisPerformanceReviewsParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `review_cycle` | n/a | ✓ Yes | | `reviewee` | n/a | ✓ Yes | | `reviewer` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisTeamsParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisTimesheetsParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisTimeOffBalancesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. DeleteHrisSkillsSkillIdParameterSkillId: type: string description: The ID of the skill PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody: type: object properties: language: type: - string - 'null' enum: - en - de - fr - it - es default: en description: Language of the UI. Please note that the provisioning setup UI is _not_ translated yet but we're working on it and setting this already will make sure the translations appear once released. PostHrisEmployeesFormRequestBody: type: object properties: properties: $ref: '#/components/schemas/Schema3' required: - properties GetHrisEmploymentsParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisTimesheetsParameterStartedBefore: description: Return timesheets whose start time is before the given timestamp. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisAbsenceTypesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisTimesheetsParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. Schema1: type: object additionalProperties: discriminator: propertyName: type anyOf: - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: text min_length: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_length: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 reg_exp: type: - string - 'null' required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: number min: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: date required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: single_select options: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: inline entries: type: array items: type: object properties: id: type: string label: type: string unified_value: type: string remote_id: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 required: - id - label - remote_id required: - type - entries - type: object properties: type: type: string const: referenced link: type: string required: - type - link required: - label - required - type - options - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' type: type: string const: multi_select min_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 options: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: inline entries: type: array items: type: object properties: id: type: string label: type: string unified_value: type: string remote_id: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 required: - id - label - remote_id required: - type - entries - type: object properties: type: type: string const: referenced link: type: string required: - type - link required: - label - required - type - options - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: checkbox required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: object properties: $ref: '#/components/schemas/Schema1' required: - label - required - type - properties - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: array item_type: $ref: '#/components/schemas/Schema2' min_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - label - required - type - item_type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: file file_restrictions: type: object properties: accepted_mime_types: type: array items: type: string max_file_size: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - accepted_mime_types required: - label - required - type - file_restrictions GetHrisStaffingEntitiesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name/title of the staffing entity. model_type: type: - string - 'null' enum: - JOB - POSITION - REQUISITION description: The remote model type of the record. Possible values are "JOB", "POSITION" or "REQUISITION". We recommend that users of our `create employee` endpoint ask the customer whether they want to hire into positions or requisitions. description: type: - string - 'null' description: A text description of the staffing entity — typically covering responsibilities, requirements, and scope. Commonly referred to as the "job description" in HRIS systems. May contain HTML, depending on the source system. status: type: - string - 'null' enum: - OPEN_LIMITED - OPEN_UNLIMITED - PENDING - FROZEN - FILLED - CLOSED examples: - OPEN_UNLIMITED description: "The status of the staffing entity.\n OPEN_LIMITED: The staffing entity is open and has a limited number of openings. Refer to the `number_of_openings` field to get the number of openings.\n OPEN_UNLIMITED: The staffing entity is open and has an unlimited number of openings. Some enterprise systems refer to this as \"Evergreen\".\n PENDING: The staffing entity is pending approval or is waiting to be published.\n FROZEN: The staffing entity is frozen (hiring freeze) and does not accept applications/hires.\n FILLED: The staffing entity is filled (to its maximum capacity) and not available for new hires.\n CLOSED: The staffing entity is closed and not available for new hires." employment_types: type: - array - 'null' items: type: object properties: remote_label: type: string description: The label of the employment type how it appears in the remote system. unified_type: type: - string - 'null' enum: - FULL_TIME - PART_TIME - CONTRACT - INTERNSHIP - FREELANCE - WORKING_STUDENT - APPRENTICESHIP - TRAINING description: The unified type, how Kombo categorize this label. required: - remote_label - unified_type description: The employment types available for/used by the staffing entity. Use the `remote_label` for display in your UI as it is consistent with the language of the remote system. Use the `unified_type` for internal categorization as it is unified across all tools. number_of_openings: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The number of openings for the staffing entity. Only meaningful for staffing entities with the status "OPEN_LIMITED". parent_id: type: - string - 'null' description: The Kombo ID of the staffing entity’s parent. Usually it’s the position/job that was used to create the requisition. The ID can be used to retrieve the parent staffing entity from the `get staffing entity` endpoint. remote_url: type: - string - 'null' format: uri description: URL to the staffing entity in the HRIS system. Use this to implement backlinks into the HRIS/Enterprise System. remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_updated_at: description: A timestamp retrieved from the remote system, describing when the resource was last updated. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString custom_fields: type: - object - 'null' additionalProperties: true description: A key-value store of fields not covered by the schema. [Read more](/custom-fields) integration_fields: type: array items: type: object properties: id: type: string description: The globally unique ID of this object. key: type: string description: The key of the field in the remote system. type: type: string enum: - DEFAULT - CUSTOM description: '- `DEFAULT`: static fields in the remote system. - `CUSTOM`: fields that are created/editable by the user.' value: type: 'null' description: The field's value. label: type: - string - 'null' description: The label of the field. (not always available) required: - id - key - type - label description: An array of selected passthrough integration fields. [Read more](/integration-fields) examples: - - id: 5NVFhMpB9Ah6by44tzNjZLyE key: firstName type: DEFAULT value: Frank label: First Name - id: 8nuajYpoRd5GnxEQaaWKUDYQ key: customTshirtSize type: CUSTOM value: XL label: T-Shirt Size remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' locations: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The work location’s name type: type: - string - 'null' description: The work location’s type. A freeform string. required: - id - remote_id - name - type examples: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ type: OFFICE description: The physical work locations associated with this staffing entity. A position or requisition can be linked to one or more offices or sites where the role is to be filled. legal_entities: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The legal entity’s name. required: - id - remote_id - name examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. description: The legal entities (companies or sub-companies) associated with this staffing entity. Indicates which employing entities within the organization the position or requisition belongs to. groups: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the group. type: type: - string - 'null' enum: - DEPARTMENT - TEAM - COST_CENTER description: Type of the group. required: - id - remote_id - name - type examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM description: The organizational groups (such as departments, teams, or cost centers) associated with this staffing entity. required: - id - remote_id - name - model_type - description - status - number_of_openings - parent_id - remote_url - remote_created_at - remote_updated_at - changed_at - remote_deleted_at - custom_fields - integration_fields - remote_data - locations - legal_entities - groups required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' name: Software Engineer model_type: POSITION description: Description of the position status: OPEN_UNLIMITED employment_types: - remote_label: Vollzeit unified_type: FULL_TIME number_of_openings: null parent_id: KGaJ5XaVPob8mYVfD49W4DGB remote_url: https://example.com/position/32 remote_created_at: '2022-08-07T14:01:29.196Z' remote_updated_at: '2022-08-07T14:01:29.196Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null custom_fields: {} integration_fields: [] remote_data: null locations: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ type: OFFICE legal_entities: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. groups: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM required: - status - data GetHrisAbsenceTypesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. PatchHrisSkillsSkillIdParameterSkillId: type: string description: The ID of the skill GetHrisEmploymentsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. PostHrisEmployeesEmployeeIdDocumentsPositiveResponse: type: object properties: status: type: string const: success data: type: object warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisStaffingEntitiesParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisSkillsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisTimeOffBalancesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employee to which the balance belongs to. The ID can be used to retrieve the employee from the `get employees` endpoint. type_id: type: string balance: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time available to the employee. balance_unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the balance. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString used: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time used by the employee. used_unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the used time. remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' type: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The absence’s name. unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the absence. half_days_supported: type: - boolean - 'null' description: Whether the integration supports half-day absences (represented through `start_half_day` and `end_half_day`) for this absence type. exact_times_supported: type: - boolean - 'null' description: '`true` if the system supports exact times (absences with a `start_time` and an `end_time`) for this absence, `false` if not.' remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - id - remote_id - name - unit - half_days_supported - exact_times_supported - remote_data - changed_at - remote_deleted_at examples: - id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - id - remote_id - employee_id - type_id - balance - balance_unit - changed_at - remote_deleted_at - used - used_unit - remote_data - type required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: FuyRuk5NqP3qTcThED3ymTuE remote_id: '124123' employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j type_id: BQJaBxRCiqN46G27VTegvkEr balance: 14 balance_unit: DAYS changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null used: 3 used_unit: DAYS remote_data: null type: id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - status - data GetHrisEmployeesFormPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: properties: type: object additionalProperties: discriminator: propertyName: type anyOf: - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: text min_length: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_length: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 reg_exp: type: - string - 'null' required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: number min: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: date required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: single_select options: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: inline entries: type: array items: type: object properties: id: type: string label: type: string unified_value: type: string remote_id: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 required: - id - label - remote_id required: - type - entries - type: object properties: type: type: string const: referenced link: type: string required: - type - link required: - label - required - type - options - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' type: type: string const: multi_select min_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 options: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: inline entries: type: array items: type: object properties: id: type: string label: type: string unified_value: type: string remote_id: oneOf: - type: string - type: number format: double minimum: -1.7976931348623157e+308 required: - id - label - remote_id required: - type - entries - type: object properties: type: type: string const: referenced link: type: string required: - type - link required: - label - required - type - options - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: checkbox required: - label - required - type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: object properties: $ref: '#/components/schemas/Schema1' required: - label - required - type - properties - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: array item_type: $ref: '#/components/schemas/Schema2' min_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 max_items: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - label - required - type - item_type - type: object properties: label: type: string required: type: boolean description: type: - string - 'null' unified_key: type: - string - 'null' enum: - first_name - last_name - date_of_birth - gender - home_address.city - home_address.country - home_address.state - home_address.street_1 - home_address.street_2 - home_address.zip_code - job_title - legal_entity_id - location_id - mobile_phone_number - home_phone_number - nationality - start_date - work_email - private_email - yearly_salary type: type: string const: file file_restrictions: type: object properties: accepted_mime_types: type: array items: type: string max_file_size: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 required: - accepted_mime_types required: - label - required - type - file_restrictions required: - properties examples: - properties: firstName: label: First Name required: true description: Employee's first name unified_key: first_name type: text min_length: 1 max_length: 100 reg_exp: null startDate: label: Start Date required: true description: Employee's start date unified_key: start_date type: date workLocation: label: Work Location required: false description: Employee's work location unified_key: null type: object properties: site: label: Site required: true description: Employee's site unified_key: null type: single_select options: type: inline entries: - id: FXrER44xubBqA9DLgZ3PFNNx label: Site 1 unified_value: '1' remote_id: site_1 - id: 2rv75UKT2XBoQXsUb9agiTUm label: Site 2 unified_value: '2' remote_id: site_2 keyNumbers: label: Key Numbers required: false description: Employee's key numbers unified_key: null type: array item_type: label: Key Number required: false description: The number of the keys which belong to the employee unified_key: null type: number min: 0 max: 99 min_items: 2 max_items: 5 warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisSkillsParameterNameContains: type: string description: Filter by the `name` field. Can be used to find a skills by keywords present in the skill name. GetHrisStaffingEntitiesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `locations` | ✓ Yes | ✓ Yes | | `legal_entities` | ✓ Yes | ✓ Yes | | `groups` | ✓ Yes | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString PostHrisEmployeeSkillAssignmentsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: string description: The unique identifier for the employee skill assignment employee_id: type: string description: The ID of the employee skill_id: type: string description: The ID of the skill current_level: type: - string - 'null' description: The current skill level of the employee required: - id - employee_id - skill_id - current_level examples: - id: 8AvRLpxwY5J6pGxfY6fUD81Z employee_id: 26vafvWSRmbhNcxJYqjCzuJg skill_id: 28KMdr68N8kG9EzLwjsN9aoz current_level: Proficiency Level 1 required: - status - data GetHrisLocationsParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisLocationsParameterPageSize: type: integer format: int64 minimum: 1 maximum: 250 default: 100 description: The number of results to return per page. Maximum is 250. GetHrisEmployeesParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. GetHrisEmployeesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_number: type: - string - 'null' description: The employee’s organization-internal employee number. first_name: type: - string - 'null' description: The employee’s first name. last_name: type: - string - 'null' description: The employee’s last name. nationality: type: - string - 'null' description: The employee’s nationality. display_full_name: type: - string - 'null' description: The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. job_title: type: - string - 'null' description: The employee’s job title. work_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s work email address. If the email address is invalid, we will set this to `null`. personal_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s personal email address. If the email address is invalid, we will set this to `null`. mobile_phone_number: type: - string - 'null' description: The employee’s mobile phone number. ssn: type: - string - 'null' description: The employee’s social security number tax_id: type: - string - 'null' description: The employee’s tax ID. gender: anyOf: - type: string enum: - MALE - FEMALE - NON_BINARY - NOT_SPECIFIED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s gender. ethnicity: anyOf: - type: string enum: - WHITE - ASIAN - HISPANIC_LATINO - HAWAIIAN - NATIVE_AMERICAN - BLACK_AFRICAN_AMERICAN - MULTIPLE_ETHNICITIES - DECLINE_TO_SPECIFY - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s ethnicity. In rare cases where we can’t find a clear mapping, the original string is passed through. marital_status: anyOf: - type: string enum: - SINGLE - MARRIED - DOMESTIC_PARTNERSHIP - WIDOWED - DIVORCED - SEPARATED - NOT_MARRIED - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: The employee’s current marital status. In rare cases where we can’t find a clear mapping, the original string is passed through. employment_status: anyOf: - type: string enum: - ACTIVE - PENDING - INACTIVE - LEAVE - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment status:\n\n- `ACTIVE`: the employee is **actively employed**\n- `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process)\n- `INACTIVE`: the employee is **not actively employed** anymore\n- `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information)\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." employment_type: anyOf: - type: string enum: - FULL_TIME - PART_TIME - CONTRACT - INTERNSHIP - FREELANCE - WORKING_STUDENT - APPRENTICESHIP - TRAINING - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment type:\n\n- `FULL_TIME`: the employee is actively employed\n- `PART_TIME`: the employee is working only part of the usual working hours\n- `CONTRACT`: the employee is working temporarily under a contract\n- `INTERNSHIP`: the employee is working as an intern\n- `FREELANCE`: the employee is working as a freelancer\n- `WORKING_STUDENT`: the employee is working as a working student\n- `APPRENTICESHIP`: the employee is working in an apprenticeship\n- `TRAINING`: the employee is working in a training program\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." weekly_hours: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The employee’s weekly working hours. avatar: type: - string - 'null' description: URL to the employee’s avatar. This is either the raw URL from the HR system (in cases where it can be requested without short-lived authentication) _or_ a URL to a temporarily cached version of the file hosted by Kombo. Kombo will delete the cached file after its deletion in the source system. work_location_id: type: - string - 'null' description: The Kombo ID of the employee’s work location. The ID can be used to retrieve the work location from the `get work locations` endpoint. legal_entity_id: type: - string - 'null' description: The Kombo ID of the employee’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. manager_id: type: - string - 'null' description: The Kombo ID of the employee’s manager. The ID can be used to retrieve the manager from the `get employees` endpoint. home_address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The employee’s home address. bank_accounts: type: - array - 'null' items: type: object properties: iban: type: - string - 'null' description: The internationally unique IBAN identifying this account. If we detect a valid IBAN from the account number and this field would otherwise be empty, we will automatically populate this field. bic: type: - string - 'null' description: The internationally unique BIC/SWIFT code identifying the bank behind this account. If we detect a valid BIC from the domestic bank routing number and this field would otherwise be empty, we will automatically populate this field. account_number: type: - string - 'null' description: The bank-specific account number. Some companies use the account number field to put the IBAN here. holder_name: type: - string - 'null' description: The name of the holder of this account. bank_name: type: - string - 'null' description: The name of the bank behind this account. domestic_bank_routing: type: - object - 'null' properties: number: type: string description: Bank routing number (e.g. DE Bankleitzahl, GB Sort Code, US ABA routing number, AU BSB code). This field is not formatted and therefore might contain delimiters (eg. 01-23-45). type: type: - string - 'null' enum: - GB_SORT_CODE - DE_BANKLEITZAHL - US_ABA_ROUTING_TRANSIT_NUMBER - CA_ROUTING_NUMBER - AU_BSB_CODE - FR_RIB description: Enum of the routing type, prefixed with the iso-3166-1-alpha-2 banks origin country. If there is uncertainty about the type, it will be set to null. required: - number - type description: The employee’s bank accounts. date_of_birth: description: The employee’s date of birth. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString start_date: description: The date the employee started working for the organization. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString termination_date: description: The date when the employment ends. Can be in the past or future. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_created_at: description: The date and time the object was created in the remote system. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString custom_fields: type: - object - 'null' additionalProperties: true description: A key-value store of fields not covered by the schema. [Read more](/custom-fields) integration_fields: type: array items: type: object properties: id: type: string description: The globally unique ID of this object. key: type: string description: The key of the field in the remote system. type: type: string enum: - DEFAULT - CUSTOM description: '- `DEFAULT`: static fields in the remote system. - `CUSTOM`: fields that are created/editable by the user.' value: type: 'null' description: The field's value. label: type: - string - 'null' description: The label of the field. (not always available) required: - id - key - type - label description: An array of selected passthrough integration fields. [Read more](/integration-fields) examples: - - id: 5NVFhMpB9Ah6by44tzNjZLyE key: firstName type: DEFAULT value: Frank label: First Name - id: 8nuajYpoRd5GnxEQaaWKUDYQ key: customTshirtSize type: CUSTOM value: XL label: T-Shirt Size remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' employments: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employment’s employee. The ID can be used to retrieve the employee from the `get employees` endpoint. job_title: type: - string - 'null' description: This field can contain historic job titles. Please use the `job_title` field on the employee for the active job title of an employee. pay_rate: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The monetary amount paid to an employee. pay_period: anyOf: - type: string enum: - HOUR - DAY - WEEK - TWO_WEEKS - HALF_MONTH - MONTH - TWO_MONTHS - QUARTER - HALF_YEAR - YEAR - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: 'The time interval which the `pay_rate` is describing. A `pay_rate` value of `12000` with a `pay_period` of `YEAR` would indicate that the employee receives 12000 over the course of a year. In rare cases where we can’t find a clear mapping, the original string is passed through.' pay_frequency: anyOf: - type: string enum: - DAILY - WEEKLY - BIWEEKLY - MONTHLY - SEMIMONTHLY - QUARTERLY - SEMIANNUALLY - ANNUALLY - PRO_RATA - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: 'The time interval at which the employee receives payment. A `pay_rate` of `12000`, with a `pay_period` of `YEAR`, and a `pay_frequency` of `MONTHLY` would indicate that the employee is paid 1000 every month. In rare cases where we can’t find a clear mapping, the original string is passed through.' employment_type: anyOf: - type: string enum: - FULL_TIME - PART_TIME - CONTRACT - INTERNSHIP - FREELANCE - WORKING_STUDENT - APPRENTICESHIP - TRAINING - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment type:\n\n- `FULL_TIME`: the employee is actively employed\n- `PART_TIME`: the employee is working only part of the usual working hours\n- `CONTRACT`: the employee is working temporarily under a contract\n- `INTERNSHIP`: the employee is working as an intern\n- `FREELANCE`: the employee is working as a freelancer\n- `WORKING_STUDENT`: the employee is working as a working student\n- `APPRENTICESHIP`: the employee is working in an apprenticeship\n- `TRAINING`: the employee is working in a training program\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." pay_currency: type: - string - 'null' description: The currency that the employee is paid in. Usually returned in [ISO 4217 currency codes](https://www.iso.org/iso-4217-currency-codes.html). effective_date: description: The date of when the employment started. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' custom_fields: type: - object - 'null' additionalProperties: true description: A key-value store of fields not covered by the schema. [Read more](/custom-fields) integration_fields: type: array items: type: object properties: id: type: string description: The globally unique ID of this object. key: type: string description: The key of the field in the remote system. type: type: string enum: - DEFAULT - CUSTOM description: '- `DEFAULT`: static fields in the remote system. - `CUSTOM`: fields that are created/editable by the user.' value: type: 'null' description: The field's value. label: type: - string - 'null' description: The label of the field. (not always available) required: - id - key - type - label description: An array of selected passthrough integration fields. [Read more](/integration-fields) examples: - - id: 5NVFhMpB9Ah6by44tzNjZLyE key: firstName type: DEFAULT value: Frank label: First Name - id: 8nuajYpoRd5GnxEQaaWKUDYQ key: customTshirtSize type: CUSTOM value: XL label: T-Shirt Size required: - id - remote_id - employee_id - job_title - pay_rate - pay_currency - effective_date - changed_at - remote_deleted_at - remote_data - custom_fields - integration_fields examples: - id: 12vpXR7BeqYNWDShXRgsonnm remote_id: '859' employee_id: 26vafvWSRmbhNcxJYqjCzuJg job_title: Social Media Marketer pay_rate: 85000 pay_period: YEAR pay_frequency: SEMIMONTHLY employment_type: FULL_TIME pay_currency: EUR effective_date: '2021-01-30T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null custom_fields: {} integration_fields: [] time_off_balances: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employee_id: type: string description: The Kombo ID of the employee to which the balance belongs to. The ID can be used to retrieve the employee from the `get employees` endpoint. type_id: type: string balance: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time available to the employee. balance_unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the balance. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString used: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The amount of time used by the employee. used_unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the used time. remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - employee_id - type_id - balance - balance_unit - changed_at - remote_deleted_at - used - used_unit - remote_data examples: - id: FuyRuk5NqP3qTcThED3ymTuE remote_id: '124123' employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j type_id: BQJaBxRCiqN46G27VTegvkEr balance: 14 balance_unit: DAYS changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null used: 3 used_unit: DAYS remote_data: null manager: type: - object - 'null' properties: first_name: type: - string - 'null' description: The employee’s first name. last_name: type: - string - 'null' description: The employee’s last name. display_full_name: type: - string - 'null' description: The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. employee_number: type: - string - 'null' description: The employee’s organization-internal employee number. work_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s work email address. If the email address is invalid, we will set this to `null`. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. employment_status: anyOf: - type: string enum: - ACTIVE - PENDING - INACTIVE - LEAVE - type: string description: 'If we can''t find a clear mapping: The original string passed through.' - type: 'null' description: "The employee’s current employment status:\n\n- `ACTIVE`: the employee is **actively employed**\n- `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process)\n- `INACTIVE`: the employee is **not actively employed** anymore\n- `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information)\n\n In rare cases where we can’t find a clear mapping, the original string is passed through." termination_date: description: The date when the employment ends. Can be in the past or future. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - first_name - last_name - display_full_name - id - employee_number - remote_id - termination_date examples: - first_name: John last_name: Doe display_full_name: John Doe id: 26vafvWSRmbhNcxJYqjCzuJg employee_number: '3243422' work_email: john.doe@acme.com remote_id: '32' employment_status: INACTIVE termination_date: '2022-05-20T00:00:00.000Z' groups: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the group. type: type: - string - 'null' enum: - DEPARTMENT - TEAM - COST_CENTER description: Type of the group. required: - id - remote_id - name - type examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM legal_entity: type: - object - 'null' properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The legal entity’s name. address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The legal entity’s address. required: - id - remote_id - name examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' teams: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the group. type: type: - string - 'null' enum: - DEPARTMENT - TEAM - COST_CENTER description: Type of the group. required: - id - remote_id - name - type examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM description: '**(⚠️ Deprecated - Please use `groups` instead. It includes the same data and the naming is less confusing.)** Maintained field for backwards compatibility.' work_location: type: - object - 'null' properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: - string - 'null' description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The work location’s name address: type: - object - 'null' properties: city: type: - string - 'null' country: type: - string - 'null' description: Contains the ISO2 country code if possible. If not, it contains the original value. raw: type: - string - 'null' description: If we have address data, this is filled with the raw address string. state: type: - string - 'null' street_1: type: - string - 'null' description: If we can parse the address data, this field contains the first part of the street information. street_2: type: - string - 'null' zip_code: type: - string - 'null' description: The work location’s address type: type: - string - 'null' description: The work location’s type. A freeform string. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - type - changed_at - remote_deleted_at - remote_data examples: - id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' type: OFFICE changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null required: - id - remote_id - employee_number - first_name - last_name - nationality - display_full_name - job_title - mobile_phone_number - ssn - tax_id - weekly_hours - avatar - work_location_id - legal_entity_id - manager_id - date_of_birth - start_date - termination_date - remote_created_at - changed_at - remote_deleted_at - custom_fields - integration_fields - remote_data - employments - time_off_balances - manager - groups - legal_entity - teams - work_location required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' employee_number: '3243422' first_name: John last_name: Doe nationality: French display_full_name: John Doe job_title: Integrations Team Lead work_email: john.doe@acme.com personal_email: john@doe.me mobile_phone_number: 801-555-4687 ssn: 555-32-6395 tax_id: 12 345 678 901 gender: MALE ethnicity: BLACK_AFRICAN_AMERICAN marital_status: MARRIED employment_status: INACTIVE employment_type: FULL_TIME weekly_hours: 40 avatar: https://resources.bamboohr.com/images/photo_person_150x150.png work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 legal_entity_id: xB32bied320csBSsl3XWdlw33 manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo home_address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' bank_accounts: - account_number: '1234567890' bank_name: Commerzbank bic: COBADEFFXXX domestic_bank_routing: number: '34567890' type: DE_BANKLEITZAHL holder_name: John Doe iban: DE12345678901234567890 date_of_birth: '1986-01-01T00:00:00.000Z' start_date: '2020-04-07T00:00:00.000Z' termination_date: '2022-05-20T00:00:00.000Z' remote_created_at: '2020-04-07T12:32:01.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null custom_fields: {} integration_fields: [] remote_data: null employments: - id: 12vpXR7BeqYNWDShXRgsonnm remote_id: '859' employee_id: 26vafvWSRmbhNcxJYqjCzuJg job_title: Social Media Marketer pay_rate: 85000 pay_period: YEAR pay_frequency: SEMIMONTHLY employment_type: FULL_TIME pay_currency: EUR effective_date: '2021-01-30T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null custom_fields: {} integration_fields: [] time_off_balances: - id: FuyRuk5NqP3qTcThED3ymTuE remote_id: '124123' employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j type_id: BQJaBxRCiqN46G27VTegvkEr balance: 14 balance_unit: DAYS changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null used: 3 used_unit: DAYS remote_data: null manager: first_name: John last_name: Doe display_full_name: John Doe id: 26vafvWSRmbhNcxJYqjCzuJg employee_number: '3243422' work_email: john.doe@acme.com remote_id: '32' employment_status: INACTIVE termination_date: '2022-05-20T00:00:00.000Z' groups: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM legal_entity: id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: ACME Inc. address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' teams: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '49' name: Customer Success type: TEAM work_location: id: 22st2Ji8XpncEYEak8mvQgQF remote_id: '1348' name: Kombo HQ address: city: Berlin country: DE raw: 'Sonnenallee 63 12045 Berlin, Berlin Germany' state: Berlin street_1: Sonnenallee 63 street_2: null zip_code: '12045' type: OFFICE changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: '2022-08-07T14:01:29.196Z' remote_data: null required: - status - data PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody: type: object properties: current_level: type: - string - 'null' description: The current skill level of the employee. Can be `null` to remove the skill level. required: - current_level GetHrisEmployeeDocumentCategoriesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisPerformanceReviewsParameterIncludeDeleted: type: string enum: - 'true' - 'false' default: 'false' description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId: type: string description: The ID of the employee skill assignment GetHrisStaffingEntitiesParameterRemoteIds: type: string description: Filter by a comma-separated list of remote IDs. PostHrisEmployeeSkillAssignmentsRequestBody: type: object properties: employee_id: type: string description: The ID of the employee skill_id: type: string description: The ID of the skill current_level: type: string description: The current skill level of the employee required: - employee_id - skill_id DeleteHrisAbsencesAbsenceIdRequestBody: type: object properties: remote_fields: type: object properties: adpworkforcenow: type: object properties: employment_id: type: string description: '[Required] The employment ID of the employee that the absence will be deleted from.' description: Fields specific to ADP Workforce Now. description: Additional fields that we will pass through to specific HRIS systems. GetHrisEmploymentsParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, only changes to the returned record itself are considered.' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString PatchHrisSkillsSkillIdRequestBody: type: object properties: name: type: string description: The name of the skill levels: type: array items: type: string description: List of available skill levels (e.g., ["Beginner", "Intermediate", "Advanced"]) GetHrisAbsenceTypesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The absence’s name. unit: type: - string - 'null' enum: - HOURS - DAYS description: The time-unit of the absence. half_days_supported: type: - boolean - 'null' description: Whether the integration supports half-day absences (represented through `start_half_day` and `end_half_day`) for this absence type. exact_times_supported: type: - boolean - 'null' description: '`true` if the system supports exact times (absences with a `start_time` and an `end_time`) for this absence, `false` if not.' remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - id - remote_id - name - unit - half_days_supported - exact_times_supported - remote_data - changed_at - remote_deleted_at examples: - id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: xzZoKssDaMZAd62kxayzzQvD remote_id: '91' name: Vacation unit: DAYS half_days_supported: true exact_times_supported: false remote_data: null changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null required: - status - data GetHrisAbsencesParameterDateFrom: description: Filter for all the absences that either start _or_ haven't ended yet on/after this day. If you imagine a calendar displaying absences, this defines the left-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString PostHrisSkillsRequestBody: type: object properties: name: type: string description: The name of the skill levels: type: array items: type: string description: List of available skill levels (e.g., ["Beginner", "Intermediate", "Advanced"]) required: - name GetHrisTimesheetsParameterEndedAfter: description: Return timesheets whose end time is on or after the given timestamp. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisEmployeesParameterIgnoreUnsupportedFilters: type: string enum: - 'true' - 'false' default: 'false' description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. GetHrisTimesheetsParameterStartedAfter: description: Return timesheets whose start time is on or after the given timestamp. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString PostHrisEmployeesEmployeeIdDocumentsRequestBody: type: object properties: category_id: type: string document: type: object properties: name: type: string description: File name of the file you want to upload. We recommend providing something human-readable with a valid file extension (like `Resume.pdf`), as this might be shown in your customer's system. content_type: type: string pattern: ^[\w.-]+\/[\w.-]+$ description: 'Content/MIME type of the file (e.g., `application/pdf`). If you provide `data`, this is required. If you provide `data_url`, this is optional and we''ll attempt to use the `Content-Type` header of the response. **Note:** Please validate that the content type you provide is actually meaningful (and not something generic like [`application/octet-stream`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types#applicationoctet-stream)). Especially when using object storage (like AWS S3), it''s easy to accidentally discard the content types of user-provided files, so make sure to explicitly persist them when processing uploads from your users (see guides for [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html#SysMetadata), [Google Cloud](https://cloud.google.com/storage/docs/metadata#content-type), and [Azure](https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob#request-headers-all-blob-types)).' data_url: type: string format: uri description: 'URL to the file you want to upload that can be accessed without authentication headers. We will download the content immediately when receiving the request, so the URL can be short-lived. If you''re using an object storage provider (like AWS S3), we strongly recommend providing a signed URL for secure access (see guides for [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html), [Google Cloud](https://cloud.google.com/storage/docs/access-control/signed-urls), and [Azure](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview)). **Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases.' data: type: string description: 'Base64-encoded contents of the file you want to upload. **Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases.' required: - name required: - category_id - document PostHrisEmployeesFormPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: id: type: - string - 'null' description: The Kombo id of the created employee. If null, we only created a pre-hire which shows up in the next sync after a successful onboarding. remote_id: type: - string - 'null' description: The raw ID of the created employee in the remote system. This is only populated when `id` is set (i.e., when a full employee was created). For pre-hires, use the `prehire` object instead. prehire: type: object properties: remote_id: type: - string - 'null' description: The temporary ID returned by the remote system when creating a pre-hire. required: - remote_id description: An object containing the temporary pre-hire information from the remote system. This ID may change or become invalid when the pre-hire becomes a full employee. Only populated when `id` is null. required: - id - remote_id - prehire examples: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '12345' prehire: remote_id: null warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetHrisPerformanceReviewsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: next: type: - string - 'null' description: Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. results: type: array items: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. type: type: - string - 'null' enum: - MANAGER - DIRECT_REPORT - PEER - SELF description: 'The relationship between the reviewee and reviewer. Manager: The reviewer is the manager of the reviewee. Direct Report: The reviewer is a direct report of the reviewee (reverse MANAGER). Peer: The reviewer is a peer of the reviewee. Self: The reviewer is the reviewee himself/herself. null: The relationship cannot be determined or the reviewer is missing.' summary_comment: type: - string - 'null' description: The summary comment of the performance review. summary_rating: discriminator: propertyName: type anyOf: - type: object properties: type: type: string const: NUMERIC min: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The minimum value of the summary rating. max: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The maximum value of the summary rating. value: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: The numeric value of the summary rating. required: - type - min - max - value - type: object properties: type: type: string const: SINGLE_SELECT ordered_options: type: - array - 'null' items: type: string description: The options of the summary rating. Ordered from bad to good. value: type: - string - 'null' description: The text value of the summary rating. required: - type - ordered_options - value - type: 'null' description: The summary rating of the performance review. changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' reviewee: type: object properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. first_name: type: - string - 'null' description: The employee’s first name. last_name: type: - string - 'null' description: The employee’s last name. display_full_name: type: - string - 'null' description: The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. work_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s work email address. If the email address is invalid, we will set this to `null`. remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - id - remote_id - first_name - last_name - display_full_name - remote_deleted_at description: The employee receiving the review. examples: - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' first_name: John last_name: Doe display_full_name: John Doe work_email: john.doe@acme.com remote_deleted_at: null - id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' first_name: John last_name: Doe display_full_name: John Doe work_email: john.doe@acme.com remote_deleted_at: null reviewer: type: - object - 'null' properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. first_name: type: - string - 'null' description: The employee’s first name. last_name: type: - string - 'null' description: The employee’s last name. display_full_name: type: - string - 'null' description: The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. work_email: type: - string - 'null' pattern: ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$ description: The employee’s work email address. If the email address is invalid, we will set this to `null`. remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - id - remote_id - first_name - last_name - display_full_name - remote_deleted_at description: The employee giving/writing the review. examples: - id: 4EeSSSd9Fr8iiW9mPKmjEVWK remote_id: '1024' first_name: Peter last_name: Doe display_full_name: Peter Doe work_email: peter.doe@acme.com remote_deleted_at: null review_cycle: type: - object - 'null' properties: id: type: string description: The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. remote_id: type: string description: The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. name: type: - string - 'null' description: The name of the performance review cycle. review_period_start_date: description: The start date of the review period of the performance review cycle. It is the start date of the evaluation timeframe and the earliest date reviews can be submitted for this cycle. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString changed_at: description: The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_deleted_at: description: The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. type: - string - 'null' format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString remote_data: type: - object - 'null' additionalProperties: true description: 'Includes the data fetched from the remote system. Please be aware that including this in you scope config might violate other scopes that are set. Remote data always has the endpoint path that we got the data from as the top level key. For example, it could look like: `{ "/companies": { ... }}` This is not available on all plans. Reach out to Kombo if you need it.' required: - id - remote_id - name - review_period_start_date - changed_at - remote_deleted_at - remote_data examples: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' name: 2025 Annual Performance Review Cycle review_period_start_date: '2025-01-01T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - id - remote_id - type - summary_comment - changed_at - remote_deleted_at - remote_data - reviewee - reviewer - review_cycle required: - next - results examples: - next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= results: - id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' type: MANAGER summary_comment: Good job this year! Let's keep it up for 2024! summary_rating: ordered_options: - Needs improvement - Below expectations - Meets expectations - Exceeds expectations - Exceptional type: SINGLE_SELECT value: Exceeds expectations changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null reviewee: id: 26vafvWSRmbhNcxJYqjCzuJg remote_id: '32' first_name: John last_name: Doe display_full_name: John Doe work_email: john.doe@acme.com remote_deleted_at: null reviewer: id: 4EeSSSd9Fr8iiW9mPKmjEVWK remote_id: '1024' first_name: Peter last_name: Doe display_full_name: Peter Doe work_email: peter.doe@acme.com remote_deleted_at: null review_cycle: id: 4B9bKBpX5tnwjiG93TAqF7ci remote_id: '1' name: 2025 Annual Performance Review Cycle review_period_start_date: '2025-01-01T00:00:00.000Z' changed_at: '2022-08-07T14:01:29.196Z' remote_deleted_at: null remote_data: null required: - status - data GetHrisEmployeeDocumentCategoriesParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisEmployeesParameterUpdatedAfter: description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. | Path | Added/Removed | Linked Record | | --- | --- | --- | | `employments` | ✓ Yes | ✓ Yes | | `time_off_balances` | ✓ Yes | ✓ Yes | | `manager` | n/a | ✓ Yes | | `group_memberships` | ✓ Yes | ✗ No | | `legal_entity` | n/a | ✓ Yes | | `work_location` | n/a | ✓ Yes | _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._' type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString GetHrisPerformanceReviewsParameterIds: type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. GetHrisEmployeesParameterWorkEmails: type: string description: Filter by a comma-separated list of work emails. We will only return employees who have _any_ of the work emails. The format of the emails is case-insensitive. GetHrisLegalEntitiesParameterCursor: type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. responses: ErrorResponseHRIS: description: The standard error response with the error codes for the HRIS use case. content: application/json: schema: type: object properties: status: type: string enum: - error error: type: object properties: code: type: - string - 'null' enum: - PLATFORM.RATE_LIMIT_EXCEEDED - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED - PLATFORM.INTEGRATION_NOT_FOUND - PLATFORM.INPUT_INVALID - PLATFORM.UNKNOWN_ERROR - PLATFORM.IP_NOT_WHITELISTED - PLATFORM.AUTHENTICATION_INVALID - PLATFORM.TASK_TIMED_OUT - INTEGRATION.PERMISSION_MISSING - INTEGRATION.AUTHENTICATION_INVALID - INTEGRATION.QA_FAILED - INTEGRATION.SETUP_SYNC_PENDING - INTEGRATION.SETUP_INCOMPLETE - INTEGRATION.INACTIVE - INTEGRATION.MODEL_NOT_AVAILABLE - INTEGRATION.MODEL_DISABLED - INTEGRATION.ACTION_NOT_AVAILABLE - INTEGRATION.ACTION_DISABLED - REMOTE.SERVICE_UNAVAILABLE - REMOTE.RATE_LIMIT_EXCEEDED - REMOTE.INPUT_INVALID - REMOTE.UNKNOWN_HTTP_ERROR - HRIS.EMPLOYEE_ALREADY_EXISTS example: HRIS.EMPLOYEE_ALREADY_EXISTS description: Some errors include an error code that can be used to identify their cause. See the [Error Handling Docs](https://docs.kombo.dev/guides/errors) for more information. For your error handling logic please use the error `code` instead of other properties (e.g. message, http status code, ...). title: type: - string - 'null' description: A static, human-readable label. message: type: string description: A dynamic, detailed description of what went wrong in this specific instance. log_url: type: - string - 'null' format: uri description: The log page in the Kombo UI lists every interaction with full details. If you need assistance, share that link with our support team. required: - code - title - message - log_url description: Error details with structured code for programmatic handling. required: - status - error examples: Error Response: description: When building error handling logic, always use the `code` field to identify specific error types programmatically. See the complete list of error codes in the [docs](https://docs.kombo.dev/guides/errors). value: status: error error: code: INTEGRATION.MODEL_NOT_AVAILABLE title: This data model isn't supported for the selected integration. message: The "employees" model is not yet available for Greenhouse. Please reach out to Kombo if you need this functionality. log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456 Minimal Error Response: description: The "message" is always required while other fields can also be `null`. See the [docs](https://docs.kombo.dev/guides/errors) for more information. value: status: error error: code: null title: null message: The message is always in the response. log_url: null securitySchemes: ApiKey: type: http scheme: bearer description: Create an API key on the [Secrets](https://app.kombo.dev/secrets) page in the Kombo dashboard.