","label":"Personality test","score":{"value":97,"max":100},"status":"COMPLETED"}],"attachments":[{"name":"Assessment Report.pdf","data":"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=","content_type":"application/pdf"}]}}}}}},"responses":{"200":{"description":"PUT /assessment/orders/:assessment_order_id/result Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/lms/users":{"get":{"operationId":"GetLmsUsers","summary":"Get users","description":"Get users\n\nRetrieve all users from the LMS system. Users are learners who can enroll in and complete courses.\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 LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr: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/GetLmsUsersParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetLmsUsersParameterPageSize"}},{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","schema":{"$ref":"#/components/schemas/GetLmsUsersParameterUpdatedAfter"}},{"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/GetLmsUsersParameterIncludeDeleted"}},{"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/GetLmsUsersParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetLmsUsersParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetLmsUsersParameterRemoteIds"}},{"name":"work_emails","in":"query","required":false,"description":"Filter by a comma-separated list of work emails. We will only return users who have _any_ of the work emails. The format of the emails is case-insensitive.","schema":{"$ref":"#/components/schemas/GetLmsUsersParameterWorkEmails"}}],"responses":{"200":{"description":"GET /lms/users Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLmsUsersPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/course-progressions":{"get":{"operationId":"GetLmsCourseProgressions","summary":"Get course progressions","description":"Get course progressions\n\nRetrieve all course progressions from the LMS system. Course progressions track users enrollment and completion status in courses.\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 LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr: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/GetLmsCourseProgressionsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetLmsCourseProgressionsParameterPageSize"}},{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","schema":{"$ref":"#/components/schemas/GetLmsCourseProgressionsParameterUpdatedAfter"}},{"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/GetLmsCourseProgressionsParameterIncludeDeleted"}},{"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/GetLmsCourseProgressionsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetLmsCourseProgressionsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetLmsCourseProgressionsParameterRemoteIds"}},{"name":"user_ids","in":"query","required":false,"description":"Filter by a comma-separated list of user IDs. We will only return progressions that are related to _any_ of the users.","schema":{"$ref":"#/components/schemas/GetLmsCourseProgressionsParameterUserIds"}}],"responses":{"200":{"description":"GET /lms/course-progressions Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLmsCourseProgressionsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}},"post":{"operationId":"PostLmsCourseProgressions","summary":"Enroll user in course","description":"Enroll a user in a course revision.\n\n\n This endpoint requires the permission **Create and manage course progressions** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"user_id\": \"7xPdr68N8kG9EzLwjsN9xyz\",\n \"course_revision_id\": \"3KMdr68N8kG9EzLwjsN9aoz\"\n}\n```","tags":["Unified LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /lms/course-progressions Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCourseProgressionsRequestBody"},"examples":{"example1":{"value":{"user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz"}}}}}},"responses":{"200":{"description":"POST /lms/course-progressions Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCourseProgressionsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/course-progressions/{course_progression_id}/complete":{"post":{"operationId":"PostLmsCourseProgressionsCourseProgressionIdComplete","summary":"Complete course","description":"Mark a course revision as completed for a user.\n\n\n This endpoint requires the permission **Create and manage course progressions** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"completed_at\": \"2024-04-15\"\n}\n```","tags":["Unified LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"course_progression_id","in":"path","required":true,"description":"The ID of the course progression in Kombo or its ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)","schema":{"$ref":"#/components/schemas/PostLmsCourseProgressionsCourseProgressionIdCompleteParameterCourseProgressionId"},"examples":{"example1":{"value":"26vafvWSRmbhNcxJYqjCzuJg"}}}],"requestBody":{"description":"POST /lms/course-progressions/:course_progression_id/complete Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCourseProgressionsCourseProgressionIdCompleteRequestBody"},"examples":{"example1":{"value":{"completed_at":"2024-04-15"}}}}}},"responses":{"200":{"description":"POST /lms/course-progressions/:course_progression_id/complete Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCourseProgressionsCourseProgressionIdCompletePositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/courses":{"get":{"operationId":"GetLmsCourses","summary":"Get courses","description":"Get courses\n\nRetrieve all courses available in the LMS. Courses are structured learning programs that users can enroll in and complete.\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 LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr: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/GetLmsCoursesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetLmsCoursesParameterPageSize"}},{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","schema":{"$ref":"#/components/schemas/GetLmsCoursesParameterUpdatedAfter"}},{"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/GetLmsCoursesParameterIncludeDeleted"}},{"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/GetLmsCoursesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetLmsCoursesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetLmsCoursesParameterRemoteIds"}}],"responses":{"200":{"description":"GET /lms/courses Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLmsCoursesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}},"post":{"operationId":"PostLmsCourses","summary":"Create course","description":"Create a new course in the LMS.\n\n\n This endpoint requires the permission **Upsert courses** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"course\": {\n \"type\": \"EXTERNAL\",\n \"title\": \"Building LMS integrations with Kombo\",\n \"description\": \"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.\",\n \"course_url\": \"https://docs.kombo.dev/lms/introduction\",\n \"thumbnail_url\": \"https://kombo.dev/images/courses/lms-integrations-thumbnail.png\",\n \"duration\": 45,\n \"languages\": [\n \"en\",\n \"de-CH\"\n ]\n }\n}\n```","tags":["Unified LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /lms/courses Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCoursesRequestBody"},"examples":{"example1":{"value":{"course":{"type":"EXTERNAL","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","course_url":"https://docs.kombo.dev/lms/introduction","thumbnail_url":"https://kombo.dev/images/courses/lms-integrations-thumbnail.png","duration":45,"languages":["en","de-CH"]}}}}}}},"responses":{"200":{"description":"POST /lms/courses Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCoursesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/courses/bulk":{"post":{"operationId":"PostLmsCoursesBulk","summary":"Upsert courses","description":"Create or update multiple courses in the LMS.\n\n\n **Note:** This endpoint is asynchronous – it returns a `task_id` immediately and processes the request in the background. Use the corresponding `GET` endpoint to poll for the task status until it reaches `COMPLETED` or `FAILED`.\n\n\n\n **Idempotency:** Sending the same request body for the same integration will return the existing task rather than creating a duplicate. This makes it safe to retry requests without risking duplicate processing.\n\n\n\n This endpoint requires the permission **Upsert courses** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"items\": [\n {\n \"origin_id\": \"course-1\",\n \"course\": {\n \"type\": \"EXTERNAL\",\n \"title\": \"Building LMS integrations with Kombo\",\n \"description\": \"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.\",\n \"course_url\": \"https://docs.kombo.dev/lms/introduction\",\n \"thumbnail_url\": \"https://kombo.dev/images/courses/lms-integrations-thumbnail.png\",\n \"duration\": 45,\n \"languages\": [\n \"en\",\n \"de-CH\"\n ]\n }\n },\n {\n \"origin_id\": \"course-2\",\n \"course\": {\n \"type\": \"EXTERNAL\",\n \"title\": \"Introduction to TypeScript\",\n \"description\": \"Learn one of the most popular programming languages of the recent years quickly and efficiently. Results guaranteed!\",\n \"course_url\": \"https://example.com\",\n \"thumbnail_url\": \"https://example.com/images/thumbnail.jpg\",\n \"duration\": 60,\n \"languages\": [\n \"en-US\",\n \"pl-PL\"\n ]\n }\n }\n ]\n}\n```","tags":["Unified LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /lms/courses/bulk Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCoursesBulkRequestBody"},"examples":{"example1":{"value":{"items":[{"origin_id":"course-1","course":{"type":"EXTERNAL","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","course_url":"https://docs.kombo.dev/lms/introduction","thumbnail_url":"https://kombo.dev/images/courses/lms-integrations-thumbnail.png","duration":45,"languages":["en","de-CH"]}},{"origin_id":"course-2","course":{"type":"EXTERNAL","title":"Introduction to TypeScript","description":"Learn one of the most popular programming languages of the recent years quickly and efficiently. Results guaranteed!","course_url":"https://example.com","thumbnail_url":"https://example.com/images/thumbnail.jpg","duration":60,"languages":["en-US","pl-PL"]}}]}}}}}},"responses":{"200":{"description":"POST /lms/courses/bulk Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCoursesBulkPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/courses/bulk/{task_id}":{"get":{"operationId":"GetLmsCoursesBulkTaskId","summary":"Get status of “Upsert courses” task","description":"Poll for the status of an existing “Upsert courses” task.\n\n\nThis endpoint returns the current status of a task. Poll it at regular intervals until the task reaches a terminal status. The possible statuses are:\n - `PENDING` – The task is still being processed.\n - `COMPLETED` – The task finished successfully. The `data` field contains the results.\n - `FAILED` – The task encountered an error. Check the `error` field for details.\n","tags":["Unified LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"task_id","in":"path","required":true,"description":"GET /lms/courses/bulk/:task_id Parameter","schema":{"$ref":"#/components/schemas/GetLmsCoursesBulkTaskIdParameterTaskId"}}],"responses":{"200":{"description":"GET /lms/courses/bulk/:task_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLmsCoursesBulkTaskIdPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/courses/{course_id}/deactivate":{"post":{"operationId":"PostLmsCoursesCourseIdDeactivate","summary":"Deactivate course","description":"Deactivate a course in the LMS.\n\nDeactivates a course, making it unavailable for new enrollments while preserving existing progress records.\n\n\n This endpoint requires the permission **Upsert courses** to be enabled in [your scope config](/scopes).\n","tags":["Unified LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"course_id","in":"path","required":true,"description":"The ID of the course in Kombo or its ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)","schema":{"$ref":"#/components/schemas/PostLmsCoursesCourseIdDeactivateParameterCourseId"},"examples":{"example1":{"value":"26vafvWSRmbhNcxJYqjCzuJg"}}}],"requestBody":{"description":"POST /lms/courses/:course_id/deactivate Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCoursesCourseIdDeactivateRequestBody"},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"POST /lms/courses/:course_id/deactivate Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostLmsCoursesCourseIdDeactivatePositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/lms/skills":{"get":{"operationId":"GetLmsSkills","summary":"Get skills","description":"Get skills\n\nRetrieve all skills available in the LMS system. Skills represent competencies or abilities that users can acquire or demonstrate through courses.\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 LMS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bombohr: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/GetLmsSkillsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetLmsSkillsParameterPageSize"}},{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","schema":{"$ref":"#/components/schemas/GetLmsSkillsParameterUpdatedAfter"}},{"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/GetLmsSkillsParameterIncludeDeleted"}},{"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/GetLmsSkillsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetLmsSkillsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetLmsSkillsParameterRemoteIds"}}],"responses":{"200":{"description":"GET /lms/skills Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLmsSkillsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"skill-12345","name":"LMS Integration","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/ai-apply/career-sites":{"post":{"operationId":"PostAiApplyCareerSites","summary":"Create a career site","description":"Create a career site entry. Career sites are required to be specified when parsing job postings, grouping them under a single entity.","tags":["AI Apply"],"requestBody":{"description":"POST /ai-apply/career-sites Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyCareerSitesRequestBody"},"examples":{"example1":{"value":{"label":"Acme Inc. California"}}}}}},"responses":{"200":{"description":"POST /ai-apply/career-sites Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyCareerSitesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Acme Inc. California"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}},"get":{"operationId":"GetAiApplyCareerSites","summary":"Get career sites","description":"Get all career sites.","tags":["AI Apply"],"parameters":[{"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/GetAiApplyCareerSitesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAiApplyCareerSitesParameterPageSize"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAiApplyCareerSitesParameterIds"}}],"responses":{"200":{"description":"GET /ai-apply/career-sites Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAiApplyCareerSitesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"results":[{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Acme Inc. California"}],"next":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/postings":{"get":{"operationId":"GetAiApplyPostings","summary":"Get job postings","description":"Get all job postings. To get the application form and submit applications, use the POST /postings/:id/inquire endpoint.","tags":["AI Apply"],"parameters":[{"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/GetAiApplyPostingsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAiApplyPostingsParameterPageSize"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAiApplyPostingsParameterIds"}},{"name":"career_site_ids","in":"query","required":false,"description":"Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`.","schema":{"$ref":"#/components/schemas/GetAiApplyPostingsParameterCareerSiteIds"}},{"name":"job_codes","in":"query","required":false,"description":"Filter by a comma-separated list of job codes such as `ACME_13,ACME_14`.","schema":{"$ref":"#/components/schemas/GetAiApplyPostingsParameterJobCodes"}}],"responses":{"200":{"description":"GET /ai-apply/postings Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAiApplyPostingsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"results":[{"id":"9QGNv3B98kL3hyELE1qsZ86s","career_site":{"id":"Chc4dua5asAQ48KUERDVF1bs","label":"Acme"},"url":"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102","job_code":"ACME_13","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z","archived_at":null,"archived_reason":null,"availability":"PENDING"}],"next":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}},"post":{"operationId":"PostAiApplyPostings","summary":"Parse a job posting","description":"Submit a job posting URL to be parsed asynchronously. Returns ID to track progress.","tags":["AI Apply"],"requestBody":{"description":"POST /ai-apply/postings Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyPostingsRequestBody"},"examples":{"example1":{"value":{"url":"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102","job_code":"ACME_13","location":{"country":"US","postal_code":"94115"},"career_site_id":"Chc4dua5asAQ48KUERDVF1bs"}}}}}},"responses":{"200":{"description":"POST /ai-apply/postings Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyPostingsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"9QGNv3B98kL3hyELE1qsZ86s","career_site":{"id":"Chc4dua5asAQ48KUERDVF1bs","label":"Acme"},"url":"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102","job_code":"ACME_13","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z","archived_at":null,"archived_reason":null,"availability":"PENDING"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/postings/{posting_id}/inquire":{"post":{"operationId":"PostAiApplyPostingsPostingIdInquire","summary":"Inquire about a job posting and the application f…","description":"Receive the application form (screening questions) for a job posting and a submission token. This endpoint must be called before submitting an application to ensure you have the latest questions and a valid submission token. The submission token is valid for 2 days and prevents duplicate submissions. The application form may contain conditional questions that are only shown based on answers to previous questions (check the display_when field).","tags":["AI Apply"],"parameters":[{"name":"posting_id","in":"path","required":true,"description":"The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.","schema":{"$ref":"#/components/schemas/PostAiApplyPostingsPostingIdInquireParameterPostingId"},"examples":{"example1":{"value":"9QGNv3B98kL3hyELE1qsZ86s"}}}],"requestBody":{"description":"POST /ai-apply/postings/:posting_id/inquire Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyPostingsPostingIdInquireRequestBody"},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"POST /ai-apply/postings/:posting_id/inquire Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyPostingsPostingIdInquirePositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"application_form":[{"block_type":"SECTION","label":"Personal Information","children":[{"block_type":"QUESTION","question_id":"6VrjehyBk685vubNydiR1hSn","label":"First name","description":null,"required":true,"category":null,"question_type":"TEXT","unified_key":"FIRST_NAME","options":null,"display_when":null},{"block_type":"QUESTION","question_id":"Hjsapofs69cx2iAu6MtTfhoh","label":"Last name","description":null,"required":true,"category":null,"question_type":"TEXT","unified_key":"LAST_NAME","options":null,"display_when":null}]},{"block_type":"QUESTION","question_id":"EKaumKPGjeA97cb8ystMmkCe","label":"What is your desired working location?","description":"Select your preferred work arrangement","required":true,"category":null,"question_type":"SINGLE_SELECT","unified_key":null,"options":[{"id":"BsnL4pAhNQc26uSc4JopTP3P","label":"Remote","unified_key":null},{"id":"8T4fcKgzLxbKFUo4saXaoMTG","label":"On-site","unified_key":null},{"id":"2cJDK3dq4WNjovohSG7dSpfd","label":"Hybrid","unified_key":null}],"display_when":null},{"block_type":"QUESTION","question_id":"2H26BKTbDn2ygN2GfEcCsUP8","label":"What timezone are you in?","description":"This helps us schedule meetings at convenient times","required":true,"category":null,"question_type":"TEXT","unified_key":null,"options":null,"display_when":{"question_id":"EKaumKPGjeA97cb8ystMmkCe","answer_equals":"BsnL4pAhNQc26uSc4JopTP3P"}},{"block_type":"QUESTION","question_id":"AdM1EuwBKE4pz94SSRHMgmba","label":"Which office would you prefer?","description":null,"required":true,"category":null,"question_type":"SINGLE_SELECT","unified_key":null,"options":[{"id":"EHCqUb5E6xzfjnfHT2LEgmM7","label":"San Francisco","unified_key":null},{"id":"5RbHT73StFM5tHdF3aVr4do1","label":"New York","unified_key":null},{"id":"F4rRwGTNeLQZV5VLwstERpsT","label":"London","unified_key":null}],"display_when":{"question_id":"EKaumKPGjeA97cb8ystMmkCe","answer_equals":"8T4fcKgzLxbKFUo4saXaoMTG"}},{"block_type":"QUESTION","question_id":"FuVZvF26NueKcN46o5euHeGx","label":"How many days per week would you like to work in the office?","description":null,"required":true,"category":null,"question_type":"NUMBER","unified_key":null,"options":null,"display_when":{"question_id":"EKaumKPGjeA97cb8ystMmkCe","answer_equals":"2cJDK3dq4WNjovohSG7dSpfd"}}],"submission_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/apply":{"post":{"operationId":"PostAiApplyApply","summary":"Submit job application","description":"Submit a job application using a submission token. The application will be queued and processed asynchronously. Returns ID to track progress and match with webhooks.","tags":["AI Apply"],"requestBody":{"description":"POST /ai-apply/apply Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyApplyRequestBody"},"examples":{"example1":{"value":{"submission_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","candidate_email":"john.doe@gmail.com","query_params":{"source":"acme","user_id":"8e05b4e5-c586-4d42-8606-b45febad3af3"},"screening_question_answers":[{"question_id":"A4zHtGQLF823sNmqy4WxoduFH","answer":"John Doe"},{"question_id":"CDEfHvMGSDnM6pq5HECdE2Kg","answer":"EycufwZHfwcVDmE47X7QN8X2"},{"question_id":"3dT5df2PhyVp7Rze76S5NqrW","answer":{"name":"john_doe_resume.pdf","content_type":"application/pdf","data":"JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2VzIDMgMCBSCj4+CmVuZG9iag=="}}]}}}}}},"responses":{"200":{"description":"POST /ai-apply/apply Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyApplyPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"ADbmw5XSkeCSE1fAucoxEGnwZ","posting_id":"JDn252PEYa4rMhKbJBjtn3ng","status":"PENDING","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/applications":{"get":{"operationId":"GetAiApplyApplications","summary":"Get applications","description":"Get all applications.","tags":["AI Apply"],"parameters":[{"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/GetAiApplyApplicationsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAiApplyApplicationsParameterPageSize"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAiApplyApplicationsParameterIds"}},{"name":"job_posting_ids","in":"query","required":false,"description":"Filter by a comma-separated list of job posting IDs such as `89V6GEKpdZwqbxQz59n1ftFb,kcGHREEXCMF26Yhpuyh1gDVE`.","schema":{"$ref":"#/components/schemas/GetAiApplyApplicationsParameterJobPostingIds"}}],"responses":{"200":{"description":"GET /ai-apply/applications Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAiApplyApplicationsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"results":[{"id":"ADbmw5XSkeCSE1fAucoxEGnwZ","job_posting_id":"JDn252PEYa4rMhKbJBjtn3ng","status":"PENDING","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z"}],"next":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/unified-api/jobs":{"get":{"operationId":"GetAiApplyUnifiedApiJobs","summary":"Get jobs","description":"**Deprecation Notice:** This endpoint is no longer actively supported. Please use the standard AI Apply API instead.\nGet jobs in a backwards compatible way as you would [via Kombo's unified API](https://docs.kombo.dev/ats/v1/get-jobs).","tags":["AI Apply"],"parameters":[{"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/GetAiApplyUnifiedApiJobsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 5.","schema":{"$ref":"#/components/schemas/GetAiApplyUnifiedApiJobsParameterPageSize"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAiApplyUnifiedApiJobsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"This parameter exists for backwards compatibility with Kombo's unified API. Supplying a comma-separated list of remote IDs such as `32,33` will return no jobs because AI Apply does not interface with a remote system that issues remote IDs.","schema":{"$ref":"#/components/schemas/GetAiApplyUnifiedApiJobsParameterRemoteIds"}},{"name":"job_codes","in":"query","required":false,"description":"Filter by a comma-separated list of job codes such as `ACME_12,ACME_14`.","schema":{"$ref":"#/components/schemas/GetAiApplyUnifiedApiJobsParameterJobCodes"}},{"name":"career_site_ids","in":"query","required":false,"description":"Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`.","schema":{"$ref":"#/components/schemas/GetAiApplyUnifiedApiJobsParameterCareerSiteIds"}}],"responses":{"200":{"description":"GET /ai-apply/unified-api/jobs Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAiApplyUnifiedApiJobsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/unified-api/jobs/{job_id}/applications":{"post":{"operationId":"PostAiApplyUnifiedApiJobsJobIdApplications","summary":"Create application","description":"**Deprecation Notice:** This endpoint is no longer actively supported. Please use the standard AI Apply API instead.\nCreate applications in a backwards compatible way as you would [via Kombo's unified API](https://docs.kombo.dev/ats/v1/post-jobs-job-id-applications).","tags":["AI Apply"],"parameters":[{"name":"job_id","in":"path","required":true,"description":"The Kombo ID or Remote ID of the Job this candidate should apply for. If you want to use the ID of the integrated system (remote_id) you need to prefix the id with \"remote:\". You can use the remote ID if you do not want to sync jobs.","schema":{"$ref":"#/components/schemas/PostAiApplyUnifiedApiJobsJobIdApplicationsParameterJobId"},"examples":{"example1":{"value":"BDpgnpZ148nrGh4mYHNxJBgx"}}}],"requestBody":{"description":"POST /ai-apply/unified-api/jobs/:job_id/applications Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyUnifiedApiJobsJobIdApplicationsRequestBody"},"examples":{"example1":{"value":{"candidate":{"first_name":"Frank","last_name":"Doe","company":"Acme Inc.","title":"Head of Integrations","email_address":"frank.doe@example.com","phone_number":"+1-541-754-3010","gender":"MALE","salary_expectations":{"amount":100000,"period":"YEAR"},"availability_date":"2021-01-01","location":{"city":"New York","zip_code":"10016","state":"NY","country":"US"}},"stage_id":"8x3YKRDcuRnwShdh96ShBNn1","attachments":[{"name":"Frank Doe CV.txt","data":"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=","type":"CV","content_type":"text/plain"}],"screening_question_answers":[{"question_id":"3phFBNXRweGnDmsU9o2vdPuQ","answer":"Yes"},{"question_id":"EYJjhMQT3LtVKXnTbnRT8s6U","answer":["GUzE666zfyjeoCJX6A8n7wh6","5WPHzzKAv8cx97KtHRUV96U8","7yZfKGzWigXxxRTygqAfHvyE"]}]}}}}}},"responses":{"200":{"description":"POST /ai-apply/unified-api/jobs/:job_id/applications Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyUnifiedApiJobsJobIdApplicationsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"PENDING","rejection_reason_name":null,"rejected_at":null,"current_stage_id":"5J7L4b48wBfffYwek9Az9pkM","job_id":"H5daSm8e85Dmvmne3wLeCPhX","candidate_id":"26vafvWSRmbhNcxJYqjCzuJg","screening_question_answers":[],"custom_fields":{},"integration_fields":[],"remote_url":"https://example.com/applications/32","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","name":"Interview","remote_id":"5","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Head of Integrations","remote_id":"1"},"candidate":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","company":"Acme, Inc.","title":"Head of Marketing","confidential":false,"source":"Employee Referral","phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://example.com/candidates/32","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"changed_at":"2022-04-04T00:00:00.000Z","remote_deleted_at":null,"tags":[{"id":"7DHDky9zk4qnWkycuuQjFXNh","name":"Fast Learner","remote_id":"1"}]}}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/ai-apply/job-feeds":{"get":{"operationId":"GetAiApplyJobFeeds","summary":"Get job feeds","description":"Get all job feeds.","tags":["AI Apply"],"parameters":[{"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/GetAiApplyJobFeedsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAiApplyJobFeedsParameterPageSize"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAiApplyJobFeedsParameterIds"}}],"responses":{"200":{"description":"GET /ai-apply/job-feeds Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAiApplyJobFeedsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"results":[{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Standard Acquisition Services LLC"}],"next":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}},"post":{"operationId":"PostAiApplyJobFeeds","summary":"Create a job feed","description":"Create a job feed. Jobs feeds are required when bulk importing job postings.","tags":["AI Apply"],"requestBody":{"description":"POST /ai-apply/job-feeds Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyJobFeedsRequestBody"},"examples":{"example1":{"value":{"label":"Standard Acquisition Services LLC"}}}}}},"responses":{"200":{"description":"POST /ai-apply/job-feeds Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAiApplyJobFeedsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Standard Acquisition Services LLC"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}},"/connect/create-link":{"post":{"operationId":"PostConnectCreateLink","summary":"Create connection link","description":"Generate a unique link that allows your user to enter the embedded Kombo Connect flow.\n\n> Check out [our full guide](/connect/embedded-flow) for more details about implementing the connection flow into your app.\n\n> Kombo will not deduplicate integrations for you that are created with this endpoint. You are responsible for keeping track of integrations in your system and prevent customers from connecting the same tool again. Use the [reconnection link](/v1/post-integrations-integration-id-relink) endpoint if you want a customer to update their credentials.\n\n### Example Request Body\n\n```json\n{\n \"end_user_email\": \"test@example.com\",\n \"end_user_organization_name\": \"Test Inc.\",\n \"integration_category\": \"HRIS\",\n \"integration_tool\": \"personio\",\n \"end_user_origin_id\": \"123\",\n \"language\": \"en\",\n \"link_type\": \"EMBEDDED\"\n}\n```","tags":["Kombo Connect"],"requestBody":{"description":"POST /connect/create-link Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostConnectCreateLinkRequestBody"},"examples":{"example1":{"value":{"end_user_email":"test@example.com","end_user_organization_name":"Test Inc.","integration_category":"HRIS","integration_tool":"personio","end_user_origin_id":"123","language":"en","link_type":"EMBEDDED"}}}}}},"responses":{"200":{"description":"POST /connect/create-link Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostConnectCreateLinkPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"link":"https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/connect/integration-by-token/{token}":{"get":{"operationId":"GetConnectIntegrationByTokenToken","summary":"Get integration by token","description":"Use this endpoint with the token you get from the connection flow to retrieve information about the created integration.\n\n It works in a similar way as the OAuth2 code flow to securely retrieve information and connect the integration to your user.\n\n> Check out [our full guide](/connect/embedded-flow) for more details about implementing the connection flow into your app.\n\nThis endpoint is used to ensure users can't trick your system connecting their\naccount in your system to another customers integration. You don't get the integration ID\nfrom the `showKomboConnect(link)` function but only the short lived token used\nfor this endpoint so that users can't send you arbitrary data that you would put\ninto your system.","tags":["Kombo Connect"],"parameters":[{"name":"token","in":"path","required":true,"description":"GET /connect/integration-by-token/:token Parameter","schema":{"$ref":"#/components/schemas/GetConnectIntegrationByTokenTokenParameterToken"}}],"responses":{"200":{"description":"GET /connect/integration-by-token/:token Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectIntegrationByTokenTokenPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"tool":"personio","id":"personio:CBNMt7dSNCzBdnRTx87dev4E","end_user_origin_id":"36123","end_user_organization_name":"Acme, Inc.","end_user_email":"user@example.com","setup_status":"COMPLETED"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/connect/activate-integration":{"post":{"operationId":"PostConnectActivateIntegration","summary":"Activate integration (optional)","description":"Use this endpoint with the token you get from the connection flow to retrieve information about the created integration. It works in a similar way as the OAuth2 code flow to securely retrieve information and connect the integration to your user. You do not need to call this endpoint for an integration to become active.\n\nWe are deprecating this endpoint in favour of the [get integration by code endpoint](/v1/get-integration-by-token-token). To migrate you only have to change to the new API endpoint.\n\n### Example Request Body\n\n```json\n{\n \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjoiVGhpcyBpcyBub3QgYW4gYWN0dWFsIHRva2VuLiJ9.JulqgOZBMKceI8vh9YLpVX51efND0ZyfUNHDXLrPz_4\"\n}\n```","tags":["Kombo Connect"],"requestBody":{"description":"POST /connect/activate-integration Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostConnectActivateIntegrationRequestBody"}}}},"responses":{"200":{"description":"POST /connect/activate-integration Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostConnectActivateIntegrationPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"tool":"personio","id":"personio:CBNMt7dSNCzBdnRTx87dev4E","end_user_origin_id":"36123","end_user_organization_name":"Acme, Inc.","end_user_email":"user@example.com","setup_status":"COMPLETED"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/system-information":{"get":{"operationId":"GetCustomDatevSystemInformation","summary":"Get DATEV system information","description":"This endpoint returns BeraterNr (consultant_number), MandantenNr (client_number) and the payroll system (LODAS or Lohn und Gehalt). Useful to generate a DATEV ASCII file for the passthrough endpoint.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /custom/datev/system-information Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevSystemInformationPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"consultant_number":1234567,"client_number":99999,"target_system":"LODAS"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/passthrough":{"post":{"operationId":"PostCustomDatevPassthrough","summary":"Write raw DATEV ASCII file","description":"This action allows to send an arbitrary ASCII file directly to DATEV LODAS or Lohn und Gehalt. Kombo adds validation for the file format but not on the content. This action allows you to implement any use case that you might have with DATEV payroll ASCII imports.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /custom/datev/passthrough Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevPassthroughRequestBody"}}}},"responses":{"200":{"description":"POST /custom/datev/passthrough Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevPassthroughPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/check-eau-permission":{"get":{"operationId":"GetCustomDatevCheckEauPermission","summary":"Verify service is enabled","description":"This endpoint validates that this DATEV integration is ready to use the eAU feature.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /custom/datev/check-eau-permission Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevCheckEauPermissionPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/eau-requests/{eau_id}":{"get":{"operationId":"GetCustomDatevEauRequestsEauId","summary":"Query the status of the eAU request","description":"This endpoint queries the status of the eAU request for the given DATEV integration.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"eau_id","in":"path","required":true,"description":"GET /custom/datev/eau-requests/:eau_id Parameter","schema":{"$ref":"#/components/schemas/GetCustomDatevEauRequestsEauIdParameterEauId"}}],"responses":{"200":{"description":"GET /custom/datev/eau-requests/:eau_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevEauRequestsEauIdPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/check-document-permission":{"get":{"operationId":"GetCustomDatevCheckDocumentPermission","summary":"Verify service is enabled","description":"This endpoint returns the available document types for this DATEV integration.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /custom/datev/check-document-permission Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevCheckDocumentPermissionPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/available-documents":{"get":{"operationId":"GetCustomDatevAvailableDocuments","summary":"Retrieve available documents","description":"Use this endpoint to get all available documents for a specific period.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"period","in":"query","required":true,"description":"Provide the period in the format YYYY-MM-DD for which to check for available documents.","schema":{"$ref":"#/components/schemas/GetCustomDatevAvailableDocumentsParameterPeriod"}}],"responses":{"200":{"description":"GET /custom/datev/available-documents Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevAvailableDocumentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"results":[{"document_type":"LOBN","available_for_employees":[{"id":"8Xi6iZrwusZqJmDGXs49GBmJ","remote_id":"123456"}],"is_company_document":false},{"document_type":"LOJO","available_for_employees":[],"is_company_document":true}]},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/download-document":{"post":{"operationId":"PostCustomDatevDownloadDocument","summary":"Download Payroll Document","description":"Download a document from DATEV\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 \"accounting_month\": \"2001-12-01\",\n \"document_type\": \"LOJE\",\n \"employee_id\": null\n}\n```","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /custom/datev/download-document Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevDownloadDocumentRequestBody"},"examples":{"example1":{"value":{"accounting_month":"2001-12-01","document_type":"LOJE","employee_id":null}},"example2":{"value":{"accounting_month":"2001-12-01","document_type":"LSTB","employee_id":"remote:200"}}}}}},"responses":{"200":{"description":"POST /custom/datev/download-document Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevDownloadDocumentPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/employees/{employee_id}/download-document":{"post":{"operationId":"PostCustomDatevEmployeesEmployeeIdDownloadDocument","summary":"Download Payroll Document","description":"Download a document from DATEV\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 \"accounting_month\": \"2001-12-01\",\n \"document_type\": \"LOJE\"\n}\n```","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"POST /custom/datev/employees/:employee_id/download-document Parameter","schema":{"$ref":"#/components/schemas/PostCustomDatevEmployeesEmployeeIdDownloadDocumentParameterEmployeeId"},"examples":{"example1":{"value":null},"example2":{"value":"remote:200"}}}],"requestBody":{"description":"POST /custom/datev/employees/:employee_id/download-document Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevEmployeesEmployeeIdDownloadDocumentRequestBody"},"examples":{"example1":{"value":{"accounting_month":"2001-12-01","document_type":"LOJE"}},"example2":{"value":{"accounting_month":"2001-12-01","document_type":"LSTB"}}}}}},"responses":{"200":{"description":"POST /custom/datev/employees/:employee_id/download-document Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevEmployeesEmployeeIdDownloadDocumentPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/employees/{employee_id}/eau-requests":{"post":{"operationId":"PostCustomDatevEmployeesEmployeeIdEauRequests","summary":"Create eAU Request","description":"Create a request for an electronic certificate of incapacity for work (eAU).\n\n\n This endpoint requires the permission **Manage eAU** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"start_work_incapacity\": \"2022-01-01\"\n}\n```","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"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/PostCustomDatevEmployeesEmployeeIdEauRequestsParameterEmployeeId"},"examples":{"example1":{"value":"remote:12312"}}}],"requestBody":{"description":"POST /custom/datev/employees/:employee_id/eau-requests Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevEmployeesEmployeeIdEauRequestsRequestBody"},"examples":{"example1":{"value":{"start_work_incapacity":"2022-01-01"}}}}}},"responses":{"200":{"description":"POST /custom/datev/employees/:employee_id/eau-requests Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevEmployeesEmployeeIdEauRequestsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/employees/{employee_id}/prepare-payroll":{"put":{"operationId":"PutCustomDatevEmployeesEmployeeIdPreparePayroll","summary":"Prepare DATEV Payroll","description":"What DATEV requires to prepare payroll is very specific and currently, as DATEV is not providing \"read\", this is not part of the unified model.\n\n\n This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"EvLV61zdahkN4ftPJbmPCkdv\",\n \"payroll_run\": {\n \"date\": \"2022-05-01\"\n },\n \"fixed_payments\": [\n {\n \"amount\": 560,\n \"lohnart\": 100\n }\n ],\n \"hourly_payments\": [\n {\n \"hours\": 14,\n \"lohnart\": 200\n },\n {\n \"hours\": 16,\n \"lohnart\": 232\n }\n ],\n \"custom_lodas\": [\n {\n \"amount\": 8,\n \"lohnart\": 300,\n \"bearbeitungsschluessel\": 4\n }\n ]\n}\n```","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"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/PutCustomDatevEmployeesEmployeeIdPreparePayrollParameterEmployeeId"},"examples":{"example1":{"value":"EvLV61zdahkN4ftPJbmPCkdv"}}}],"requestBody":{"description":"PUT /custom/datev/employees/:employee_id/prepare-payroll Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody"},"examples":{"example1":{"value":{"payroll_run":{"date":"2022-05-01"},"fixed_payments":[{"amount":560,"lohnart":100}],"hourly_payments":[{"hours":14,"lohnart":200},{"hours":16,"lohnart":232}],"custom_lodas":[{"amount":8,"lohnart":300,"bearbeitungsschluessel":4}]}}}}}},"responses":{"200":{"description":"PUT /custom/datev/employees/:employee_id/prepare-payroll Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/employees/{employee_id}/compensations":{"put":{"operationId":"PutCustomDatevEmployeesEmployeeIdCompensations","summary":"Set DATEV compensations","description":"Sets the compensations for an employee on the specified effective date.\n\n Other compensations will end at the effective date. That means, if you would like to add a compensation, you also have to include the compensations that you would like to keep.\n\n\n This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"3bdhemmSP1TPQDGWtRveRot9\",\n \"effective_date\": \"2022-12-01\",\n \"compensations\": [\n {\n \"amount\": 4500,\n \"currency\": \"EUR\",\n \"period\": \"MONTH\",\n \"lohnart\": 200\n },\n {\n \"amount\": 30,\n \"currency\": \"EUR\",\n \"period\": \"HOUR\"\n }\n ]\n}\n```","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"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/PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId"},"examples":{"example1":{"value":"3bdhemmSP1TPQDGWtRveRot9"}}}],"requestBody":{"description":"PUT /custom/datev/employees/:employee_id/compensations Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody"},"examples":{"example1":{"value":{"effective_date":"2022-12-01","compensations":[{"amount":4500,"currency":"EUR","period":"MONTH","lohnart":200},{"amount":30,"currency":"EUR","period":"HOUR"}]}}}}}},"responses":{"200":{"description":"PUT /custom/datev/employees/:employee_id/compensations Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/check-write-permission":{"get":{"operationId":"GetCustomDatevCheckWritePermission","summary":"Verify service is enabled","description":"This endpoint returns whether you can write to this DATEV integration.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /custom/datev/check-write-permission Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevCheckWritePermissionPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/data-pushes":{"get":{"operationId":"GetCustomDatevDataPushes","summary":"Get DATEV data pushes","description":"Returns all \"DATEV Data Pushes\" of the last 2 months. You can use this endpoint to give your users transparency about submitted \"ASCII-Files\" and their status. Each data push can contain multiple files that were submitted.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /custom/datev/data-pushes Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomDatevDataPushesPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/push-data/general":{"post":{"operationId":"PostCustomDatevPushDataGeneral","summary":"Push general data to DATEV","description":"Uploads the currently relevant general data (employees, compensations, and time offs) to DATEV. This will create so called ASCII files that the accountant has to import in DATEV. You can call this endpoint to implement an on-demand sync to DATEV, for example if you want to offer your users a button to do that in your application.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /custom/datev/push-data/general Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevPushDataGeneralRequestBody"}}}},"responses":{"200":{"description":"POST /custom/datev/push-data/general Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevPushDataGeneralPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"files":[{"name":"EXTF_Stammdaten.csv","content":"EXTF;700;21;Stammdaten;..."}]},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/datev/push-data/payroll":{"post":{"operationId":"PostCustomDatevPushDataPayroll","summary":"Push payroll data to DATEV","description":"Uploads the currently relevant payroll data (supplements) to DATEV. This will create so called ASCII files that the accountant has to import in DATEV. After finishing the payroll preparation or after correcting payroll, you can call this.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"datev:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /custom/datev/push-data/payroll Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevPushDataPayrollRequestBody"}}}},"responses":{"200":{"description":"POST /custom/datev/push-data/payroll Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomDatevPushDataPayrollPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"files":[{"name":"EXTF_Bewegungsdaten.csv","content":"EXTF;700;21;Bewegungsdaten;..."}]},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/custom/silae/employees/{employee_id}/payroll-supplements":{"post":{"operationId":"PostCustomSilaeEmployeesEmployeeIdPayrollSupplements","summary":"Write Payroll Supplement","description":"Write a payroll supplement to Silae using the supplement code.\n\n\n This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"EvLV61zdahkN4ftPJbmPCkdv\",\n \"supplement_code\": \"200\",\n \"effective_date\": \"2024-01-14\",\n \"element_amount\": 6\n}\n```","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"silae:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"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/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsParameterEmployeeId"},"examples":{"example1":{"value":"EvLV61zdahkN4ftPJbmPCkdv"}}}],"requestBody":{"description":"POST /custom/silae/employees/:employee_id/payroll-supplements Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody"},"examples":{"example1":{"value":{"supplement_code":"200","effective_date":"2024-01-14","element_amount":6}}}}}},"responses":{"200":{"description":"POST /custom/silae/employees/:employee_id/payroll-supplements Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/ai-apply/job-feeds/{job_feed_id}/bulk-import":{"post":{"operationId":"postAiApplyJobFeedsBulkImport","summary":"Bulk import job postings","description":"Bulk import job postings into a job feed using NDJSON (newline-delimited JSON) format.\n\n**Request Format:**\nSend one JSON object per line. Each line represents a job posting to import.\n\n**Example Request Body:**\n```\n{\"url\":\"https://careers.acme.com/job/1\",\"career_site_label\":\"ACME Corp\"}\n{\"url\":\"https://careers.acme.com/job/2\",\"career_site_label\":\"ACME Corp\",\"job_code\":\"ENG-123\"}\n{\"url\":\"https://careers.acme.com/job/3\",\"career_site_label\":\"ACME Corp\",\"location\":{\"country\":\"US\",\"postal_code\":\"94115\"}}\n```\n\n**Behavior:**\n- Career sites are automatically created based on unique `career_site_label` values\n- Job postings are identified by the combination of URL + career_site_label + job_code\n- Existing job postings are updated; new ones are created and queued for parsing\n- Job postings from previous imports that are not included in the current import are archived\n\n**Constraints:**\n- Maximum request size: 35 MB\n- Timeout: 5 minutes\n- One concurrent import per job feed","tags":["AI Apply"],"security":[{"ApiKey":[]}],"parameters":[{"name":"job_feed_id","in":"path","required":true,"schema":{"type":"string"},"description":"The ID of the job feed to import into","example":"mK7pQw9xNvEr2LdY5sGh8TcZ"}],"requestBody":{"required":true,"description":"NDJSON stream where each line is a JSON object matching the BulkImportJobPostingInput schema","content":{"application/x-ndjson":{"schema":{"type":"string","description":"NDJSON stream - each line is a JSON object representing a job posting"},"example":"{\"url\":\"https://careers.acme.com/job/1\",\"career_site_label\":\"ACME Corp\"}\n{\"url\":\"https://careers.acme.com/job/2\",\"career_site_label\":\"ACME Corp\",\"job_code\":\"ENG-123\"}"}}},"responses":{"200":{"description":"Import completed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkImportResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseAiApply"}}}}},"components":{"schemas":{"GetCheckApiKeyPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"environment_id":{"type":"string"},"customer_id":{"type":"string","description":"**(⚠️ Deprecated)** Renamed to `environment_id`."}},"required":["environment_id","customer_id"],"examples":[{"environment_id":"2Uev1YUTqLFdvMPD3Jtrg2FX","customer_id":"2Uev1YUTqLFdvMPD3Jtrg2FX"}]}},"required":["status","data"]},"PostForceSyncPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"already_queued":{"type":"boolean","description":"We only allow 1 concurrent sync to be running or queued."},"sync_id":{"type":"string","description":"ID of the newly-created or already-queued-or-running sync."},"type":{"type":"string","enum":["FULL","DELTA"],"description":"The type of the triggered sync. May differ from request, if the integration does not support delta syncs or if another sync is already running."}},"required":["already_queued","sync_id","type"],"examples":[{"already_queued":false,"sync_id":"119ihtp91nA3dqRFiV67nXS6","type":"DELTA"}]}},"required":["status","data"]},"PostForceSyncRequestBody":{"type":"object","properties":{"type":{"type":"string","enum":["FULL","DELTA"],"default":"FULL","description":"The type of the triggered sync."}}},"PostPassthroughToolApiParameterTool":{"type":"string","description":"The ID of the tool whose passthrough API you want to call (e.g., `personio`)."},"PostPassthroughToolApiParameterApi":{"type":"string","description":"The ID of the passthrough API you want to call (some tools provide multiple). Check the endpoint description for a list of all available APIs."},"PostPassthroughToolApiPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The full URL of the request that we automatically assemble for you based on the specified `api`, the specified `path`, and the integration's auth credentials. You can use this to debug path-related issues (e.g., the API returning 404 errors)."},"status":{"type":"integer","format":"int64","description":"The HTTP status code returned from the remote system."},"headers":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"description":"The HTTP headers returned from the remote system."},"data":{"description":"The HTTP body returned from the remote system. This will either be an array or object (in the case that JSON was returned) or a string (in any other case)."}},"required":["url","status","headers"],"examples":[{"url":"https://api.personio.de/v1/company/employees","status":200,"headers":{"content-type":"application/json"},"data":{"success":true,"data":[{"id":123,"first_name":"John","last_name":"Doe"}]}}]},"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"]},"PostPassthroughToolApiRequestBody":{"type":"object","properties":{"method":{"type":"string","enum":["GET","POST","DELETE","PUT","PATCH"],"description":"The HTTP method (e.g., `GET`) of the request."},"path":{"type":"string","description":"The path of the endpoint you want to call. We automatically prepend the base URL of the API (all base URLs are documented in the endpoint description)."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"The headers to send with the request. Note that we automatically supply any authentication-related headers."},"params":{"type":"object","additionalProperties":{"type":"string"},"description":"The query parameters to send in addition to the ones in the `path`."},"data":{"description":"The data to submit as part of the request body. This can either be an array or object (in which case we will forward it as JSON) or a string (in which case we will forward it raw)."},"response_as_base64":{"type":"boolean","description":"If set to `true`, the response will be returned as a base64-encoded string. This is useful for binary data (e.g., PDFs)."},"multipart_form_data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The key of the form data"},"value":{"oneOf":[{"type":"string","description":"The value of the form data (Can be an object if the field is of the type file)"},{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."}},"required":["name"]}]}},"required":["name","value"],"description":"The data to submit as part of the request body if the request's `Content-Type` is `multipart/form-data`."}},"api_options":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom options interpreted by the passthrough API adapter you've selected. These options are not documented right now as they're only for very advanced use cases."}},"required":["method","path"]},"DeleteIntegrationsIntegrationIdParameterIntegrationId":{"type":"string"},"DeleteIntegrationsIntegrationIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object"}},"required":["status","data"]},"DeleteIntegrationsIntegrationIdRequestBody":{"type":"object","properties":{}},"GetIntegrationsIntegrationIdParameterIntegrationId":{"type":"string"},"GetIntegrationsIntegrationIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the connected tool in Kombo (e.g. `factorial`)."},"label":{"type":"string"},"internal_label":{"type":["string","null"],"description":"Internal label that can help you debug specific variants of the integration. Only show the `label` to your users."},"logo_url":{"type":"string","format":"uri","description":"URL to an SVG logo of the connected tool. The logo usually contains the tool name."},"icon_url":{"type":"string","format":"uri","description":"URL to a square SVG icon of the connected tool."}},"required":["id","label","internal_label","logo_url","icon_url"]},"category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"]},"status":{"type":"string","enum":["ACTIVE","INVALID","INACTIVE"],"description":"The current status of the integration.\n\n- `ACTIVE`: The integration is syncing data as expected.\n- `INVALID`: The integration has stopped syncing data because of invalid credentials. To fix this, reach out to your customer to [reconnect the integration](../guides/integration-states#credentials-invalid).\n- `INACTIVE`: The integration has stopped syncing as it's been manually set to inactive. You can [enable it again](../guides/integration-states#inactive) in the integration's page."},"setup_status":{"type":"string","enum":["INCOMPLETE","FINAL_SYNC_PENDING","COMPLETED"],"description":"The setup_status is used in conjunction with the filtering and field mapping features. If these are enabled in the connection flow, the integration will start in an \"INCOMPLETE\" state and move to \"COMPLETE\" once all steps are finished.\n\n- `INCOMPLETE`: Setup is still in progress. Some steps aren’t finished, so no data is available yet. Syncs only run as needed for setup.\n- `FINAL_SYNC_PENDING`: Setup is complete, and the final sync is running. Data will be available after this sync is done.\n- `COMPLETED`: Setup is fully finished, and the integration is ready to use."},"end_user":{"type":"object","properties":{"organization_name":{"type":"string"},"creator_email":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"origin_id":{"type":["string","null"],"description":"The ID you have passed initially to the connection flow to create this integration."}},"required":["organization_name","creator_email","origin_id"]},"scope_config":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]}},"required":["id","name"]},"data_expired_at":{"description":"The date when the integration configuration (e.g. filters, scope config) was changed, invalidating the synced data. It is cleared after a successful sync. If this field is `null` the data you fetch is valid to the state of the last sync or webhook event received. Otherwise it will be set to `null` with the next successful sync.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"created_at":{"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"}},"beta":{"type":"boolean"},"read_models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"ID of the model (e.g. hris_employees)."},"label":{"type":"string","description":"Label of the model (e.g. Employees)."},"is_available":{"type":"boolean","description":"Whether the datapoint is available and enabled and not opted out of."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."},"scope_config_setting":{"type":"string","enum":["ENABLED","DISABLED","OPTIONAL"],"description":"The setting of the datapoint in the scope config that you configured in the Kombo dashboard."},"opted_out_by_customer":{"type":"boolean","description":"Whether the datapoint is opted out by your customer in the connection flow."},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Key of the field in the API (e.g. first_name)."},"is_available":{"type":"boolean","description":"Whether the datapoint is available and enabled and not opted out of."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."},"scope_config_setting":{"type":"string","enum":["ENABLED","DISABLED","OPTIONAL"],"description":"The setting of the datapoint in the scope config that you configured in the Kombo dashboard."},"opted_out_by_customer":{"type":"boolean","description":"Whether the datapoint is opted out by your customer in the connection flow."}},"required":["id","is_available","coverage_status","scope_config_setting","opted_out_by_customer"]}}},"required":["id","label","is_available","coverage_status","scope_config_setting","opted_out_by_customer","fields"]}},"write_actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"ID of the action (e.g. ats_create_candidate)."},"label":{"type":"string","description":"Label of the action (e.g. Create candidate)."},"is_available":{"type":"boolean","description":"Whether the datapoint is available and enabled and not opted out of."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."},"scope_config_setting":{"type":"string","enum":["ENABLED","DISABLED","OPTIONAL"],"description":"The setting of the datapoint in the scope config that you configured in the Kombo dashboard."},"opted_out_by_customer":{"type":"boolean","description":"Whether the datapoint is opted out by your customer in the connection flow."},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Key of the input field (e.g. candidate.first_name)."},"is_available":{"type":"boolean","description":"Whether the datapoint is available and enabled and not opted out of."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."}},"required":["id","is_available","coverage_status"]},"description":"Field support status for the action. Please note that action fields can't be configured in the scope config or opted out by your customer."}},"required":["id","label","is_available","coverage_status","scope_config_setting","opted_out_by_customer","fields"]}}},"required":["id","tool","category","status","setup_status","end_user","scope_config","data_expired_at","created_at","beta","read_models","write_actions"],"examples":[{"id":"factorial:8d1hpPsbjxUkoCoa1veLZGe5","tool":{"id":"factorial","label":"Factorial","internal_label":null,"logo_url":"https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg","icon_url":"https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg"},"category":"HRIS","status":"ACTIVE","setup_status":"COMPLETED","end_user":{"organization_name":"Acme","creator_email":"example-integration-creator@acme.com","origin_id":"2DQJAUtSzzzKP9buDTvUvPk3"},"scope_config":{"id":"B1hu5NGyhdjSq5X3hxEz4bAN","name":"Anonymous Scopes"},"data_expired_at":null,"created_at":"2022-08-07T14:01:29.196Z","beta":false,"read_models":[{"id":"hris_employees","label":"Employees","is_available":true,"coverage_status":"SUPPORTED","scope_config_setting":"ENABLED","opted_out_by_customer":false,"fields":[{"id":"date_of_birth","is_available":false,"coverage_status":"SUPPORTED","scope_config_setting":"OPTIONAL","opted_out_by_customer":true}]}],"write_actions":[{"id":"hris_create_employee","label":"Create employee","is_available":true,"coverage_status":"SUPPORTED","scope_config_setting":"ENABLED","opted_out_by_customer":false,"fields":[{"id":"first_name","is_available":true,"coverage_status":"SUPPORTED"}]}]}]}},"required":["status","data"]},"PutIntegrationsIntegrationIdEnabledParameterIntegrationId":{"type":"string"},"PutIntegrationsIntegrationIdEnabledPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object"}},"required":["status","data"]},"PutIntegrationsIntegrationIdEnabledRequestBody":{"type":"object","properties":{"value":{"type":"boolean","description":"The desired state of the integration (e.g., `true` for enabled, `false` for disabled)."}},"required":["value"]},"PostIntegrationsIntegrationIdRelinkParameterIntegrationId":{"type":"string"},"PostIntegrationsIntegrationIdRelinkPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"link":{"type":"string","format":"uri"}},"required":["link"]}},"required":["status","data"]},"PostIntegrationsIntegrationIdRelinkRequestBody":{"type":"object","properties":{"language":{"type":["string","null"],"enum":["en","de","fr","it","es"],"default":"en","description":"Language of the connection flow UI."},"scope_config_id":{"type":["string","null"],"description":"Specify a scope config which the integration will start using once the reconnection flow has been completed.\n\nThis can be useful if you want to update the permissions of an integration, but only want the change to take effect once the user has updated their API credentials to prevent sync issues."},"link_type":{"type":"string","enum":["EMBEDDED","MAGIC_LINK"],"default":"EMBEDDED","description":"The type of link you want to create. `EMBEDDED` is for the [embedded flow](../guides/connect/embedded-flow) using the Kombo Connect SDK (these links are valid for 1 hour) and `MAGIC_LINK` is for [magic links](../guides/connect/magic-links) which you send out manually to customers (there are valid for 1 year).\n\nThis defaults to `EMBEDDED`, which is our recommended method of implementing the connection flow for a seamless user experience."}}},"GetIntegrationsIntegrationIdIntegrationFieldsParameterIntegrationId":{"type":"string"},"GetIntegrationsIntegrationIdIntegrationFieldsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetIntegrationsIntegrationIdIntegrationFieldsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":2000,"default":100,"description":"The number of results to return per page. Maximum is 2000."},"GetIntegrationsIntegrationIdIntegrationFieldsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the field."},"key":{"type":"string","description":"The key of the field in the remote system."},"model":{"type":"string","description":"The model the field is associated with."},"type":{"type":"string","enum":["DEFAULT","CUSTOM"],"description":"The type of the integration field. There is a type to avoid collisions between DEFAULT fields and CUSTOM fields with the same key."},"label":{"type":["string","null"],"description":"The label of the field in the remote system."},"is_passthrough_enabled":{"type":"boolean","description":"Whether the field is included in the integrations_fields array of the corresponding model."},"is_writable":{"type":"boolean","const":false,"description":"This field is related to a deprecated feature and means nothing, but is kept for backwards compatibility."}},"required":["id","key","model","type","label","is_passthrough_enabled","is_writable"],"examples":[{"id":"9suhxJU83Kon4kPTS47837uE","key":"tax_id","model":"hris_employees","type":"DEFAULT","label":"Tax ID","is_passthrough_enabled":true,"is_writable":false}]}},"next_cursor":{"type":["string","null"],"description":"**(⚠️ Deprecated - Use `next` instead.)** 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."},"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."}},"required":["results","next_cursor","next"],"examples":[{"results":[{"id":"FFpTK47GhXnU6QAopPq2bdos","key":"tax_id","model":"hris_employees","type":"DEFAULT","label":"Tax ID","is_passthrough_enabled":true,"is_writable":false}],"next_cursor":null,"next":null}]}},"required":["status","data"]},"PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdParameterIntegrationId":{"type":"string"},"PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdParameterIntegrationFieldId":{"type":"string"},"PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the field."},"key":{"type":"string","description":"The key of the field in the remote system."},"model":{"type":"string","description":"The model the field is associated with."},"type":{"type":"string","enum":["DEFAULT","CUSTOM"],"description":"The type of the integration field. There is a type to avoid collisions between DEFAULT fields and CUSTOM fields with the same key."},"label":{"type":["string","null"],"description":"The label of the field in the remote system."},"is_passthrough_enabled":{"type":"boolean","description":"Whether the field is included in the integrations_fields array of the corresponding model."},"is_writable":{"type":"boolean","const":false,"description":"This field is related to a deprecated feature and means nothing, but is kept for backwards compatibility."}},"required":["id","key","model","type","label","is_passthrough_enabled","is_writable"],"examples":[{"id":"9suhxJU83Kon4kPTS47837uE","key":"tax_id","model":"hris_employees","type":"DEFAULT","label":"Tax ID","is_passthrough_enabled":true,"is_writable":false}]}},"required":["status","data"]},"PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdRequestBody":{"type":"object","properties":{"enable_passthrough":{"type":["boolean","null"]}},"required":["enable_passthrough"]},"GetIntegrationsIntegrationIdCustomFieldsParameterIntegrationId":{"type":"string"},"GetIntegrationsIntegrationIdCustomFieldsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetIntegrationsIntegrationIdCustomFieldsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetIntegrationsIntegrationIdCustomFieldsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the field"},"key":{"type":"string","description":"The key of the custom field as it will be used in the custom_field object of the corresponding model"},"integration_field":{"type":["object","null"],"properties":{"id":{"type":"string","description":"The integration field's unique ID"},"key":{"type":"string","description":"The key of the integration field in the remote system"},"type":{"type":"string","enum":["DEFAULT","CUSTOM"],"description":"The type of the integration field. There is a type to avoid collisions between DEFAULT fields and CUSTOM fields with the same key."},"label":{"type":["string","null"],"description":"The label of the integration field in the remote system"}},"required":["id","key","type","label"],"description":"The integration field the custom field is mapped to. Null if not mapped."},"model":{"type":"string","description":"The model the field is associated with"},"label":{"type":["string","null"],"description":"The label of the custom field"},"description":{"type":["string","null"],"description":"The description of the custom field"}},"required":["id","key","integration_field","model","label","description"],"examples":[{"id":"EU3Bwa4iDfGspEELW71WDvvu","key":"tshirt_size","integration_field":{"id":"3n6geaAmKL5tFonXVAtsMDmr","key":"custom.tshirt_size","type":"CUSTOM","label":"T-Shirt Size"},"model":"hris_employees","label":"T-Shirt Size","description":"Map this to the employee's tshirt size"}]}},"next_cursor":{"type":["string","null"],"description":"**(⚠️ Deprecated - Use `next` instead.)** 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."},"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."}},"required":["results","next_cursor","next"],"examples":[{"results":[{"id":"D9CoSqqun6ix7uKEwb2kHBU1","key":"unified_tax_id","integration_field":{"id":"FFpTK47GhXnU6QAopPq2bdos","key":"tax_id","type":"DEFAULT","label":"The employee's tax ID"},"model":"hris_employees","label":null,"description":null}],"next_cursor":null,"next":null}]}},"required":["status","data"]},"PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdParameterIntegrationId":{"type":"string","description":"The unique ID of the integration where the custom field mapping should be updated"},"PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdParameterCustomFieldId":{"type":"string","description":"The unique ID of the custom field that should be updated"},"PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the field"},"key":{"type":"string","description":"The key of the custom field as it will be used in the custom_field object of the corresponding model"},"integration_field":{"type":["object","null"],"properties":{"id":{"type":"string","description":"The integration field's unique ID"},"key":{"type":"string","description":"The key of the integration field in the remote system"},"type":{"type":"string","enum":["DEFAULT","CUSTOM"],"description":"The type of the integration field. There is a type to avoid collisions between DEFAULT fields and CUSTOM fields with the same key."},"label":{"type":["string","null"],"description":"The label of the integration field in the remote system"}},"required":["id","key","type","label"],"description":"The integration field the custom field is mapped to. Null if not mapped."},"model":{"type":"string","description":"The model the field is associated with"},"label":{"type":["string","null"],"description":"The label of the custom field"},"description":{"type":["string","null"],"description":"The description of the custom field"}},"required":["id","key","integration_field","model","label","description"],"examples":[{"id":"EU3Bwa4iDfGspEELW71WDvvu","key":"tshirt_size","integration_field":{"id":"3n6geaAmKL5tFonXVAtsMDmr","key":"custom.tshirt_size","type":"CUSTOM","label":"T-Shirt Size"},"model":"hris_employees","label":"T-Shirt Size","description":"Map this to the employee's tshirt size"}]}},"required":["status","data"]},"PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdRequestBody":{"type":"object","properties":{"integration_field_id":{"type":["string","null"],"description":"The integration field's unique ID which the custom field should be mapped to. Null to remove a mapping."}},"required":["integration_field_id"]},"GetToolsCategoryParameterCategory":{"type":"string","enum":["hris","ats","assessment","lms"]},"GetToolsCategoryPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"internal_label":{"type":["string","null"],"description":"Internal label that can help you debug specific variants of the integration. Only show the `label` to your users."},"assets":{"type":"object","properties":{"logo_url":{"type":"string"},"icon_url":{"type":"string"},"icon_black_url":{"type":"string"}},"required":["logo_url","icon_url","icon_black_url"]},"paid_api_details_markdown":{"type":["string","null"],"description":"Markdown formatted text that describes details about the paid API. `null` if the tool is not paid."},"fast_track_details_markdown":{"type":["string","null"],"description":"Markdown formatted text that describes details about the fast track process. `null` if the fast track process is not available."},"partner_only_details_markdown":{"type":["string","null"],"description":"Markdown formatted text that describes partnership requirements. `null` if the tool does not require a partnership."},"connection_guide_url":{"type":["string","null"],"description":"URL to the connection guide for this tool. `null` if no connection guide is available."},"coverage":{"type":"object","properties":{"read_models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"ID of the model (e.g. hris_employees)."},"label":{"type":"string","description":"Label of the model (e.g. Employees)."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Key of the field in the model (e.g. first_name)."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."}},"required":["id","coverage_status"]}}},"required":["id","label","coverage_status","fields"],"description":"List of models we can read for this tool."}},"write_actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Key of the input field (e.g. `candidate.first_name`)."},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."}},"required":["id","coverage_status"]}}},"required":["id","label","coverage_status","fields"],"description":"List of supported write actions for this tool."}},"features":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"coverage_status":{"type":"string","enum":["SUPPORTED","UNSUPPORTED","NOT_IMPLEMENTED","UNKNOWN"],"description":"The status of a datapoint of an integrated tool:\n\n- `SUPPORTED`: the tool supports the datapoint and it can be used through Kombo.\n- `UNSUPPORTED`: the tool does not support the datapoint.\n- `NOT_IMPLEMENTED`: tool supports the datapoint but it was not integrated by Kombo for a given reason (see coverage grid).\n- `UNKNOWN`: the datapoint is not integrated yet and Kombo has no information about it's availability in the tool."}},"required":["id","label","coverage_status"]}}},"required":["read_models","write_actions","features"],"description":"This describes the supported models and actions of this tool."}},"required":["id","label","internal_label","assets","paid_api_details_markdown","fast_track_details_markdown","partner_only_details_markdown","connection_guide_url","coverage"]}}},"required":["tools"],"examples":[{"tools":[{"id":"factorial","label":"Factorial","internal_label":null,"assets":{"logo_url":"https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg","icon_url":"https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg","icon_black_url":"https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg"},"paid_api_details_markdown":null,"fast_track_details_markdown":null,"partner_only_details_markdown":null,"connection_guide_url":"https://help.kombo.dev/hc/en-us/articles/18743884123409-Factorial-HR-How-do-I-link-my-account","coverage":{"read_models":[{"id":"hris_employees","label":"Employees","coverage_status":"SUPPORTED","fields":[{"id":"date_of_birth","coverage_status":"SUPPORTED"}]},{"id":"hris_teams","label":"Groups","coverage_status":"UNSUPPORTED","fields":[{"id":"parent_id","coverage_status":"UNSUPPORTED"}]}],"write_actions":[{"id":"hris_create_employee","label":"Create employee","coverage_status":"SUPPORTED","fields":[{"id":"first_name","coverage_status":"SUPPORTED"}]}],"features":[{"id":"automatic_source_writing","label":"Automatic Source Writing","coverage_status":"SUPPORTED"}]}}]}]}},"required":["status","data"]},"PostHrisProvisioningGroupsGroupIdDiffParameterGroupId":{"type":"string","description":"ID of the provisioning group (currently only `default` is allowed)."},"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"]},"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"]},"PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId":{"type":"string","description":"ID of the provisioning group (currently only `default` is allowed)."},"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"]},"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."}}},"GetHrisEmployeesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisEmployeesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisEmployeesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisEmployeesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisEmployeesParameterEmploymentStatus":{"type":"string","enum":["ACTIVE","PENDING","INACTIVE","LEAVE"],"description":"**(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** Filter by the `employment_status` field."},"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."},"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."},"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."},"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."},"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."},"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."},"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."},"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.\n- `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n\nA `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.\n\nA `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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\n12045 Berlin, Berlin\nGermany","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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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\n12045 Berlin, Berlin\nGermany","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\n12045 Berlin\nGermany","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\n12045 Berlin, Berlin\nGermany","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\n12045 Berlin, Berlin\nGermany","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"]},"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.\n- `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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\n12045 Berlin\nGermany","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"]},"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"]},"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"]}]},"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"]}]}},"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"]},"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"]},"Schema5":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Schema4"}},"Schema6":{"type":"array","items":{"$ref":"#/components/schemas/Schema4"}},"Schema4":{"oneOf":[{"type":"string"},{"type":"number","format":"double","minimum":-1.7976931348623157e+308},{"type":"boolean"},{"$ref":"#/components/schemas/Schema5"},{"$ref":"#/components/schemas/Schema6"}]},"Schema3":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Schema4"}},"PostHrisEmployeesFormRequestBody":{"type":"object","properties":{"properties":{"$ref":"#/components/schemas/Schema3"}},"required":["properties"]},"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`)"},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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\n12045 Berlin\nGermany","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"]},"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"]},"PostHrisEmployeesEmployeeIdDocumentsParameterEmployeeId":{"type":"string"},"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"]},"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."}},"required":["name"]}},"required":["category_id","document"]},"GetHrisEmployeeDocumentCategoriesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisEmployeeDocumentCategoriesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisEmployeeDocumentCategoriesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisEmployeeDocumentCategoriesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisTeamsParameterCursor":{"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."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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."},"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."},"GetHrisTeamsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisTeamsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisGroupsParameterCursor":{"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."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisGroupsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisGroupsParameterRemoteIds":{"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."},"GetHrisGroupsParameterNameContains":{"type":"string","description":"Filter by the `name` field. Can be used to find a group by keywords present in the group name."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisEmploymentsParameterCursor":{"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."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisEmploymentsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisEmploymentsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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.\n\nA `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.\n\nA `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"]},"GetHrisLocationsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisLocationsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisLocationsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisLocationsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisLocationsParameterNameContains":{"type":"string","description":"Filter by the `name` field. Can be used to find a location by keywords present in the location 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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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\n12045 Berlin, Berlin\nGermany","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\n12045 Berlin, Berlin\nGermany","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"]},"GetHrisAbsenceTypesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisAbsenceTypesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisAbsenceTypesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisAbsenceTypesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisTimeOffBalancesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisTimeOffBalancesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisTimeOffBalancesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisTimeOffBalancesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisTimeOffBalancesParameterEmployeeId":{"type":"string","description":"Filter by a specific employee using their ID."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisAbsencesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisAbsencesParameterPageSize":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisAbsencesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisAbsencesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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"}},"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"}},"GetHrisAbsencesParameterTypeIds":{"type":"string","description":"Filter by a comma-separated list of absence type IDs."},"GetHrisAbsencesParameterEmployeeId":{"type":"string","description":"Filter by a specific employee using their ID."},"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"}},"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"}},"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."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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","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","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"]},"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."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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","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","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"]},"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"]},"DeleteHrisAbsencesAbsenceIdParameterAbsenceId":{"type":"string","description":"The Kombo ID of the absence"},"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."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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","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","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"]},"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."}}},"GetHrisLegalEntitiesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisLegalEntitiesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisLegalEntitiesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisLegalEntitiesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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\n12045 Berlin, Berlin\nGermany","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\n12045 Berlin, Berlin\nGermany","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."},"GetHrisTimesheetsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisTimesheetsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisTimesheetsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisTimesheetsParameterEmployeeId":{"type":"string","description":"Returns timesheets for a specific employee."},"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"}},"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"}},"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"}},"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"}},"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.\n- `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisPerformanceReviewCyclesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisPerformanceReviewCyclesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisPerformanceReviewCyclesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisPerformanceReviewCyclesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisPerformanceReviewsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisPerformanceReviewsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"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."},"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."},"GetHrisPerformanceReviewsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisPerformanceReviewsParameterRemoteIds":{"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."},"GetHrisPerformanceReviewsParameterReviewCycleIds":{"type":"string","description":"Filter by a comma-separated list of review cycle IDs."},"GetHrisPerformanceReviewsParameterRevieweeIds":{"type":"string","description":"Filter by a comma-separated list of reviewee IDs."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetHrisSkillsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisSkillsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisSkillsParameterNameContains":{"type":"string","description":"Filter by the `name` field. Can be used to find a skills by keywords present in the skill name."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"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"]},"PatchHrisSkillsSkillIdParameterSkillId":{"type":"string","description":"The ID of the skill"},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"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\"])"}}},"DeleteHrisSkillsSkillIdParameterSkillId":{"type":"string","description":"The ID of the skill"},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"DeleteHrisSkillsSkillIdRequestBody":{"type":"object","properties":{}},"GetHrisEmployeeSkillAssignmentsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisEmployeeSkillAssignmentsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisEmployeeSkillAssignmentsParameterEmployeeIds":{"type":"string","description":"Filter by a comma-separated list of employee IDs."},"GetHrisEmployeeSkillAssignmentsParameterSkillIds":{"type":"string","description":"Filter by a comma-separated list of skill 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"]},"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"]},"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"]},"PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId":{"type":"string","description":"The ID of the employee skill assignment"},"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"]},"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"]},"DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId":{"type":"string","description":"The ID of the employee skill assignment"},"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"]},"DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody":{"type":"object","properties":{}},"GetHrisStaffingEntitiesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetHrisStaffingEntitiesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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."},"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."},"GetHrisStaffingEntitiesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetHrisStaffingEntitiesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetHrisStaffingEntitiesParameterModelTypes":{"type":"string","description":"Filter by a comma-separated list of `JOB`, `POSITION`, `REQUISITION` \n\nLeave this blank to get results matching all values."},"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."},"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.\n- `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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"]},"GetAtsApplicationsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsApplicationsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsApplicationsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsApplicationsParameterIncludeDeleted":{"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."},"GetAtsApplicationsParameterIgnoreUnsupportedFilters":{"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."},"GetAtsApplicationsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsApplicationsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsApplicationsParameterOutcome":{"type":"string","enum":["PENDING","HIRED","DECLINED"],"description":"**(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter applications by outcome. This allows you to get applications that are for example `PENDING`, `HIRED`, or `DECLINED`."},"GetAtsApplicationsParameterOutcomes":{"type":"string","description":"Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` \n* `PENDING`: The application is still being processed. \n* `HIRED`: The candidate was hired. \n* `DECLINED`: The candidate was declined. \n \n\nLeave this blank to get results matching all values."},"GetAtsApplicationsParameterJobIds":{"type":"string","description":"Filter by a comma-separated list of job IDs. We will only return applications that are related to _any_ of the jobs."},"GetAtsApplicationsParameterJobRemoteIds":{"type":"string","description":"Filter by a comma-separated list of job remote IDs. We will only return applications that are related to _any_ of the jobs."},"GetAtsApplicationsParameterCurrentStageIds":{"type":"string","description":"Filter by a comma-separated list of application stage IDs. We will only return applications that are currently in _any_ of the stages."},"GetAtsApplicationsParameterRemoteCreatedAfter":{"description":"Filter applications by the day they were created in the remote system. This allows you to get applications that were created on or after a certain day.","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"}},"GetAtsApplicationsPositiveResponse":{"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."},"outcome":{"type":["string","null"],"enum":["PENDING","HIRED","DECLINED"],"description":"Parsed status of the application. If Kombo identifies that the application was accepted and the candidate hired, it will be `HIRED`. If the application was rejected or the candidate declined, it will be `DECLINED`. If the application is still in process, it will be `PENDING`.\nKombo will always try to deliver this information as reliably as possible."},"rejection_reason_name":{"type":["string","null"],"description":"Reason for the rejection of the candidate."},"rejected_at":{"description":"The time that the application was rejected.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"current_stage_id":{"type":["string","null"],"description":"ID of the current application stage"},"job_id":{"type":["string","null"],"description":"The Kombo ID of the job which the candidate applied to. The ID can be used to retrieve the job from the `get jobs` endpoint."},"candidate_id":{"type":["string","null"],"description":"The Kombo ID of the candidate who applied to the job. The ID can be used to retrieve the candidate from the `get candidates` endpoint."},"screening_question_answers":{"type":["array","null"],"items":{"anyOf":[{"type":"object","properties":{"answer":{"type":"object","properties":{"content":{"type":["string","null"]}},"required":["content"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"TEXT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"choice":{"type":["string","null"]}},"required":["choice"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"SINGLE_SELECT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"choices":{"type":"array","items":{"type":"string"},"default":[]}}},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"MULTI_SELECT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"checked":{"type":["boolean","null"]}},"required":["checked"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"BOOLEAN"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"number":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308}},"required":["number"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"NUMBER"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"date":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"}},"required":["date"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"DATE"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"raw":{"type":"null","description":"We pass the original question data along so you can handle it."}}},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"UNKNOWN","description":"When we're not able to map a specific question type yet, we will return this type. Every `UNKNOWN` question will also be parsed and unified by us at some point."}},"required":["remote_id","title","type"]}},"required":["answer","question"]}]},"default":[],"description":"A list of answers to screening questions. The screening answer type `FILE` is currently unsupported."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the application in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated application URL is available, so you might need to fall back to the candidate URL."},"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_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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"candidate":{"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":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."},"phone_numbers":{"type":["array","null"],"items":{"type":"object","properties":{"phone_number":{"type":"string"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["phone_number"]},"default":[],"description":"A list of phone numbers of the candidate."},"social_media":{"type":["array","null"],"items":{"type":"object","properties":{"link":{"type":["string","null"]},"type":{"type":["string","null"]},"username":{"type":["string","null"]}}},"default":[],"description":"List of social media accounts of the candidate."},"source":{"type":["string","null"],"description":"The hiring source of the candidate. If you're a job board or recruiting service, you can use this to validate which candidates applied through your service and ensure that the correct referral compensation is paid out."},"remote_url":{"type":["string","null"],"format":"uri","description":"URL to the candidate profile in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated candidate profile URL is available, so you might need to fall back to the application URL."},"tags":{"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"]}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","name":"High Potential"}]}}},"required":["id","remote_id","first_name","last_name","source","remote_url","tags"]},"current_stage":{"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 application stage name. For example, \"Initial Screening\"."},"index":{"type":["integer","null"],"format":"int64","examples":[2]}},"required":["id","remote_id","name","index"]},"job":{"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":"Title of the job."}},"required":["id","remote_id","name"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer"}]},"interviews":{"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."},"title":{"type":["string","null"],"description":"The title of the interview."},"starting_at":{"description":"The start time of the interview.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"ending_at":{"description":"The end time of the interview.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"location":{"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":"Location of the interview."},"canceled":{"type":["boolean","null"],"description":"Whether the interview was canceled or not. If we have no information, this field will be `null`."}},"required":["id","remote_id","title","starting_at","ending_at","canceled"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","title":"Interview with John Doe","starting_at":"2023-06-26T14:30:00.000Z","ending_at":"2023-06-26T15:30:00.000Z","location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"canceled":false}]}},"offers":{"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."},"status":{"type":["string","null"],"enum":["ACCEPTED","DECLINED","SENT","APPROVED","DRAFT","ABANDONED"],"description":"The offer’s current status. The usual flow of statuses is as follows:\n`DRAFT` -> `APPROVED` -> `SENT` -> `ACCEPTED` or `DECLINED`.\n\nPlease note that not all systems will expose all statuses. For example, most systems do not include the `APPROVED` status\n\n- `ACCEPTED`: The offer was accepted by the candidate.\n- `DECLINED`: The offer was declined by the candidate.\n- `SENT`: The offer was sent to the candidate.\n- `APPROVED`: The draft was approved.\n- `DRAFT`: The offer is a draft and has not yet been sent to the candidate.\n- `ABANDONED`: The offer has expired or is no longer valid and should not be considered.\n"}},"required":["id","remote_id","status"],"examples":[{"id":"76bab8LKuFtqpZ89mofCPMHX","remote_id":"6","status":"ACCEPTED"}]}}},"required":["id","remote_id","outcome","rejection_reason_name","rejected_at","current_stage_id","job_id","candidate_id","custom_fields","integration_fields","remote_url","changed_at","remote_deleted_at","remote_created_at","remote_updated_at","remote_data","candidate","current_stage","job","interviews","offers"]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"HIRED","rejection_reason_name":null,"rejected_at":null,"current_stage_id":"5J7L4b48wBfffYwek9Az9pkM","job_id":"H5daSm8e85Dmvmne3wLeCPhX","candidate_id":"26vafvWSRmbhNcxJYqjCzuJg","screening_question_answers":[{"answer":{"choice":"TypeScript"},"question":{"remote_id":"48b4d36a-1d4b-4c50-ada7-9519078e65b4","title":"Which is your primary programming language","type":"SINGLE_SELECT"}}],"custom_fields":{},"integration_fields":[],"remote_url":"https://app.greenhouse.io/applications/32","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_created_at":"2022-08-07T14:01:29.196Z","remote_updated_at":"2022-08-07T14:01:29.196Z","remote_data":null,"candidate":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"source":"Employee Referral","remote_url":"https://app.greenhouse.io/people/32","tags":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","name":"High Potential"}]},"current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","remote_id":"32","name":"Initial Screening","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer"},"interviews":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","title":"Interview with John Doe","starting_at":"2023-06-26T14:30:00.000Z","ending_at":"2023-06-26T15:30:00.000Z","location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"canceled":false}],"offers":[{"id":"76bab8LKuFtqpZ89mofCPMHX","remote_id":"6","status":"ACCEPTED"}]}]}]}},"required":["status","data"]},"PutAtsApplicationsApplicationIdStageParameterApplicationId":{"type":"string","description":"The Kombo ID of the application you want to move to a different stage."},"PutAtsApplicationsApplicationIdStagePositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PutAtsApplicationsApplicationIdStageRequestBody":{"type":"object","properties":{"stage_id":{"type":"string","description":"The Kombo ID of the stage to move the application to. This stage must be allowed for the job that the application is connected to. Get available stages from the `stages` property on the job, not from the deprecated application-stages endpoint."},"remote_fields":{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["stage_id"]},"PostAtsApplicationsApplicationIdResultLinksParameterApplicationId":{"type":"string","description":"The Kombo ID of the application you want to create the link for."},"PostAtsApplicationsApplicationIdResultLinksPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PostAtsApplicationsApplicationIdResultLinksRequestBody":{"type":"object","properties":{"label":{"type":"string","description":"If we can display a display name for the link, we will use this label."},"url":{"type":"string","format":"uri","description":"URL of the link."},"details":{"type":"object","properties":{"custom_field_name_prefix":{"type":"string","description":"That will be added to the attribute labels if they are used for custom fields. If you specify `Acme:` as the prefix, the custom field will be named `Acme: Score`. Putting in the name of your company/product is a good idea."},"attributes":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The name of the attribute"},"value":{"type":"string","description":"The value of the attribute"}},"required":["key","value"]}}},"required":["custom_field_name_prefix","attributes"],"description":"Additional details with attributes that will be added to the result. This can be percentages, scores, or any text.\n\nWe generally recommend using short attribute keys and a short custom_field_name_prefix to avoid overflowing the ATS UI."},"remote_fields":{"allOf":[{"type":"object","properties":{"icims":{"type":"object","properties":{"assessment_package_id":{"type":"string","description":"The package ID of the assessment that the result link will be added to."}},"description":"Fields specific to iCIMS."},"oracle":{"type":"object","properties":{"override_document_category":{"type":"string","enum":["IRC_CANDIDATE_RESUME","IRC_CANDIDATE_COVERLETTER","MISC","IRC_INTERNAL"],"description":"Allows you to override the document category for the url. (Default: MISC)"},"multi_post_to_all_current_applications":{"type":"boolean","description":"If true, the result link will be posted to all current applications for the candidate."}},"description":"Fields specific to Oracle."}},"description":"Additional fields that we will pass through to specific ATS systems."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["label","url"]},"PostAtsApplicationsApplicationIdNotesParameterApplicationId":{"type":"string","description":"The Kombo ID of the application you want to create the note for."},"PostAtsApplicationsApplicationIdNotesPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PostAtsApplicationsApplicationIdNotesRequestBody":{"type":"object","properties":{"content":{"type":"string","description":"UTF-8 content of the note."},"content_type":{"type":"string","enum":["PLAIN_TEXT"],"description":"Content type of the note. Currently only `PLAIN_TEXT` is supported."},"remote_fields":{"allOf":[{"type":"object","properties":{"teamtailor":{"type":"object","properties":{"user_id":{"type":"string","description":"ID of the user that created the note. Defaults to the first admin user found."}},"description":"Teamtailor specific remote fields for the note."},"greenhouse":{"type":"object","properties":{"visibility":{"type":"string","enum":["admin_only","private","public"],"description":"Visibility of the created note."}},"description":"Greenhouse specific remote fields for the note."},"recruitee":{"type":"object","properties":{"visibility":{"description":"Visibility of the created note."},"is_json":{"type":"boolean","description":"Whether the note is in a stringified JSON format. If true, content should contain a valid JSON as per the [Recruitee API documentation](https://docs.recruitee.com/reference/candidatesidnotes) (body_json field). If false we add the note as a plain text."}},"description":"Recruitee specific remote fields for the note."},"bullhorn":{"type":"object","properties":{"action":{"type":"string","description":"The action (or type) associated with a Note. You can find all available note actions in a Bullhorn instance under System Settings > commentActionList. The default action is `Note`."}},"description":"Bullhorn specific remote fields for the note."},"lever":{"type":"object","properties":{"perform_as":{"type":"string","description":"ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token."}},"description":"Lever specific remote fields for the note."}},"description":"Tool specific remote fields for the note."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Tool specific remote fields for the note."}},"required":["content","content_type"]},"GetAtsApplicationsApplicationIdAttachmentsParameterApplicationId":{"type":"string","description":"The Kombo ID of the application you want to obtain attachments for."},"GetAtsApplicationsApplicationIdAttachmentsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"]},"id":{"type":"string"},"remote_id":{"type":"string"},"data_url":{"type":"string"},"file_name":{"type":"string"},"content_type":{"type":"string"},"remote_created_at":{"description":"The date when the attachment was created.","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":"The date when the attachment 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"}}},"required":["type","id","remote_id","data_url","file_name","content_type","remote_created_at","remote_updated_at"]}}},"required":["results"],"examples":[{"results":[{"type":"CV","id":"EYJjhMQT3LtVKXnTbnRT8s6U","remote_id":"GUzE666zfyjeoCJX6A8n7wh6","data_url":"https://resources.kombo.dev/7yZfKGzWigXxxRTygqAfHvyE","file_name":"Frank Doe CV.pdf","content_type":"application/x-pdf","remote_created_at":null,"remote_updated_at":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"]},"PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId":{"type":"string"},"PostAtsApplicationsApplicationIdAttachmentsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PostAtsApplicationsApplicationIdAttachmentsRequestBody":{"type":"object","properties":{"attachment":{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."},"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"],"description":"Type of the attachment in the ATS. This may affect where the uploaded file will be shown in your customer's system."}},"required":["name","type"]},"remote_fields":{"allOf":[{"type":"object","properties":{"oracle":{"type":"object","properties":{"override_document_category":{"type":"string","enum":["IRC_CANDIDATE_RESUME","IRC_CANDIDATE_COVERLETTER","MISC","IRC_INTERNAL"],"description":"Allows you to override the document category for the attachment."},"multi_post_to_all_current_applications":{"type":"boolean","description":"If true, the attachment will be posted to all current applications for the candidate."}},"description":"Oracle specific remote fields for the attachment."}}},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}]}},"required":["attachment"]},"PostAtsApplicationsApplicationIdRejectParameterApplicationId":{"type":"string","description":"The Kombo ID of the application you want to reject."},"PostAtsApplicationsApplicationIdRejectPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PostAtsApplicationsApplicationIdRejectRequestBody":{"type":"object","properties":{"rejection_reason_id":{"type":"string","description":"The Kombo ID of the rejection reason."},"note":{"type":"string","description":"A optional free text rejection note. Passed through if possible."},"remote_fields":{"allOf":[{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"rejection_email":{"type":"object","additionalProperties":true,"description":"Additional data fields that we will pass through to the `rejection_email` field of Greenhouse's [reject application](https://developers.greenhouse.io/harvest.html#post-reject-application) endpoint."}},"description":"Fields specific to Greenhouse."},"teamtailor":{"type":"object","properties":{"user_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action. If not provided, the first admin user will be used."}},"description":"Fields specific to Teamtailor."}},"description":"Additional fields that we will pass through to specific ATS systems."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["rejection_reason_id"]},"PostAtsApplicationsApplicationIdInterviewsParameterApplicationId":{"type":"string","description":"The ID of the application"},"PostAtsApplicationsApplicationIdInterviewsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object"}},"required":["status","data"]},"PostAtsApplicationsApplicationIdInterviewsRequestBody":{"type":"object","properties":{"title":{"type":"string","description":"The title of the interview"},"start_time":{"type":"string","description":"The start time of the interview"},"end_time":{"type":"string","description":"The end time of the interview"},"interviewer_user_ids":{"type":"array","items":{"type":"string"},"description":"The IDs of the interviewers"},"organizer_user_id":{"type":"string","description":"The ID of the organizer"},"location":{"type":"object","properties":{"type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"address":{"type":"string","description":"The address of the interview"}},"required":["type"]}},"required":["title","start_time","end_time","interviewer_user_ids","organizer_user_id","location"]},"PatchAtsApplicationsApplicationIdInterviewsParameterApplicationId":{"type":"string","description":"The ID of the application"},"PatchAtsApplicationsApplicationIdInterviewsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object"}},"required":["status","data"]},"PatchAtsApplicationsApplicationIdInterviewsRequestBody":{"type":"object","properties":{"interview_id":{"type":"string","description":"The ID of the interview"},"title":{"type":"string","description":"The title of the interview"},"start_time":{"type":"string","description":"The start time of the interview"},"end_time":{"type":"string","description":"The end time of the interview"},"interviewer_user_ids":{"type":"array","items":{"type":"string"},"description":"The IDs of the interviewers"},"organizer_user_id":{"type":"string","description":"The ID of the organizer"},"location":{"type":"object","properties":{"type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"address":{"type":"string"}},"required":["type"]}},"required":["interview_id","title","start_time","end_time","interviewer_user_ids","organizer_user_id","location"]},"GetAtsCandidatesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsCandidatesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsCandidatesParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsCandidatesParameterIncludeDeleted":{"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."},"GetAtsCandidatesParameterIgnoreUnsupportedFilters":{"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."},"GetAtsCandidatesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsCandidatesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsCandidatesParameterEmail":{"type":"string","description":"Filter the candidates based on an email address. When set, returns only the candidates where the given `email` is in `email_addresses`. This filter is case-insensitive.","format":"email"},"GetAtsCandidatesParameterJobIds":{"type":"string","description":"Filter by a comma-separated list of job IDs. We will only return candidates that have applied to _any_ of the jobs."},"GetAtsCandidatesParameterFirstName":{"type":"string","description":"Filter candidates by first name. This filter is case-insensitive and matches the exact first name. Fuzzy matching might be enabled in the future, so consider this for your implementation."},"GetAtsCandidatesParameterLastName":{"type":"string","description":"Filter candidates by last name. This filter is case-insensitive and matches the exact last name. Fuzzy matching might be enabled in the future, so consider this for your implementation."},"GetAtsCandidatesPositiveResponse":{"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."},"first_name":{"type":["string","null"],"description":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"company":{"type":["string","null"],"description":"The current company of the candidate."},"title":{"type":["string","null"],"description":"The current job title of the candidate."},"confidential":{"type":["boolean","null"],"description":"Whether the candidate’s profile is confidential in the ATS."},"source":{"type":["string","null"],"description":"The hiring source of the candidate. If you're a job board or recruiting service, you can use this to validate which candidates applied through your service and ensure that the correct referral compensation is paid out."},"phone_numbers":{"type":["array","null"],"items":{"type":"object","properties":{"phone_number":{"type":"string"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["phone_number"]},"default":[],"description":"A list of phone numbers of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."},"social_media":{"type":["array","null"],"items":{"type":"object","properties":{"link":{"type":["string","null"]},"type":{"type":["string","null"]},"username":{"type":["string","null"]}}},"default":[],"description":"List of social media accounts of the candidate."},"location":{"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":"Location of the candidate."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the candidate profile in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated candidate profile URL is available, so you might need to fall back to the application URL."},"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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"applications":{"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."},"outcome":{"type":["string","null"],"enum":["PENDING","HIRED","DECLINED"],"description":"Parsed status of the application. If Kombo identifies that the application was accepted and the candidate hired, it will be `HIRED`. If the application was rejected or the candidate declined, it will be `DECLINED`. If the application is still in process, it will be `PENDING`.\nKombo will always try to deliver this information as reliably as possible."},"rejection_reason_name":{"type":["string","null"],"description":"Reason for the rejection of the candidate."},"rejected_at":{"description":"The time that the application was rejected.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"remote_url":{"type":["string","null"],"format":"uri","description":"URL to the application in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated application URL is available, so you might need to fall back to the candidate URL."},"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_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"}},"current_stage":{"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."},"name":{"type":["string","null"],"description":"The application stage name. For example, \"Initial Screening\"."},"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."},"index":{"type":["integer","null"],"format":"int64","examples":[2]}},"required":["id","name","remote_id","index"]},"job":{"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."},"name":{"type":["string","null"],"description":"Title of the job."},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}]}},"required":["id","remote_id","outcome","rejection_reason_name","rejected_at","remote_url","changed_at","remote_created_at","remote_updated_at","current_stage","job"]}},"tags":{"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."},"name":{"type":["string","null"]},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}}},"required":["id","remote_id","first_name","last_name","company","title","confidential","source","custom_fields","integration_fields","remote_url","remote_created_at","remote_updated_at","remote_data","changed_at","remote_deleted_at","applications","tags"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","company":"Acme, Inc.","title":"Head of Marketing","confidential":false,"source":"Employee Referral","phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://app.greenhouse.io/people/32","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"changed_at":"2022-04-04T00:00:00.000Z","remote_deleted_at":null,"applications":[{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"HIRED","rejection_reason_name":null,"rejected_at":null,"remote_url":"https://app.greenhouse.io/applications/32","changed_at":"2022-04-04T00:00:00.000Z","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","name":"Initial Screening","remote_id":"32","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}}],"tags":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","company":"Acme, Inc.","title":"Head of Marketing","confidential":false,"source":"Employee Referral","phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://app.greenhouse.io/people/32","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"changed_at":"2022-04-04T00:00:00.000Z","remote_deleted_at":null,"applications":[{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"HIRED","rejection_reason_name":null,"rejected_at":null,"remote_url":"https://app.greenhouse.io/applications/32","changed_at":"2022-08-07T14:01:29.196Z","remote_created_at":"2022-08-07T14:01:29.196Z","remote_updated_at":"2022-08-07T14:01:29.196Z","current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","name":"Initial Screening","remote_id":"32","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}}],"tags":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}]}]}},"required":["status","data"]},"PostAtsCandidatesPositiveResponse":{"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."},"first_name":{"type":["string","null"],"description":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"company":{"type":["string","null"],"description":"The current company of the candidate."},"title":{"type":["string","null"],"description":"The current job title of the candidate."},"confidential":{"type":["boolean","null"],"description":"Whether the candidate’s profile is confidential in the ATS."},"source":{"type":["string","null"],"description":"The hiring source of the candidate. If you're a job board or recruiting service, you can use this to validate which candidates applied through your service and ensure that the correct referral compensation is paid out."},"phone_numbers":{"type":["array","null"],"items":{"type":"object","properties":{"phone_number":{"type":"string"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["phone_number"]},"default":[],"description":"A list of phone numbers of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."},"social_media":{"type":["array","null"],"items":{"type":"object","properties":{"link":{"type":["string","null"]},"type":{"type":["string","null"]},"username":{"type":["string","null"]}}},"default":[],"description":"List of social media accounts of the candidate."},"location":{"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":"Location of the candidate."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the candidate profile in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated candidate profile URL is available, so you might need to fall back to the application URL."},"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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"applications":{"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."},"outcome":{"type":["string","null"],"enum":["PENDING","HIRED","DECLINED"],"description":"Parsed status of the application. If Kombo identifies that the application was accepted and the candidate hired, it will be `HIRED`. If the application was rejected or the candidate declined, it will be `DECLINED`. If the application is still in process, it will be `PENDING`.\nKombo will always try to deliver this information as reliably as possible."},"rejection_reason_name":{"type":["string","null"],"description":"Reason for the rejection of the candidate."},"rejected_at":{"description":"The time that the application was rejected.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"remote_url":{"type":["string","null"],"format":"uri","description":"URL to the application in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated application URL is available, so you might need to fall back to the candidate URL."},"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_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"}},"current_stage":{"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."},"name":{"type":["string","null"],"description":"The application stage name. For example, \"Initial Screening\"."},"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."},"index":{"type":["integer","null"],"format":"int64","examples":[2]}},"required":["id","name","remote_id","index"]},"job":{"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."},"name":{"type":["string","null"],"description":"Title of the job."},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}]}},"required":["id","remote_id","outcome","rejection_reason_name","rejected_at","remote_url","changed_at","remote_created_at","remote_updated_at","current_stage","job"]}},"tags":{"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."},"name":{"type":["string","null"]},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}}},"required":["id","remote_id","first_name","last_name","company","title","confidential","source","custom_fields","integration_fields","remote_url","remote_created_at","remote_updated_at","remote_data","changed_at","remote_deleted_at","applications","tags"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","company":"Acme, Inc.","title":"Head of Marketing","confidential":false,"source":"Employee Referral","phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://app.greenhouse.io/people/32","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"changed_at":"2022-04-04T00:00:00.000Z","remote_deleted_at":null,"applications":[{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"HIRED","rejection_reason_name":null,"rejected_at":null,"remote_url":"https://app.greenhouse.io/applications/32","changed_at":"2022-04-04T00:00:00.000Z","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","name":"Initial Screening","remote_id":"32","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}}],"tags":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}]},"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"]},"PostAtsCandidatesRequestBody":{"type":"object","properties":{"candidate":{"type":"object","properties":{"first_name":{"type":"string","description":"The first name of the candidate."},"last_name":{"type":"string","description":"The last name of the candidate."},"email_address":{"type":"string","description":"The primary email address this application will be created with.","format":"email"},"additional_email_addresses":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PERSONAL","WORK","OTHER"]},"email_address":{"type":"string","format":"email"}},"required":["type","email_address"]}},"company":{"type":"string","description":"The company where the candidate is currently working."},"title":{"type":"string","description":"The current job title of the candidate."},"phone_number":{"type":"string","description":"The phone number of the candidate."},"additional_phone_numbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PERSONAL","WORK","OTHER"]},"phone_number":{"type":"string"}},"required":["type","phone_number"]}},"location":{"type":"object","properties":{"city":{"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."},"state":{"type":"string"},"street_1":{"type":"string"},"zip_code":{"type":"string"}},"required":["country"],"description":"The location of the candidate."},"gender":{"type":"string","enum":["MALE","FEMALE","OTHER"],"description":"The gender of the candidate. Must be one of `MALE`, `FEMALE`, or `OTHER`."},"availability_date":{"description":"The date the candidate is available to start working.","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"}},"salary_expectations":{"type":"object","properties":{"period":{"type":"string","enum":["MONTH","YEAR"],"description":"The period of the salary expectations. Must be one of `MONTH` or `YEAR`."},"amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The amount of the salary expectations."}},"required":["period","amount"],"description":"The salary expectations of the applicant. We will automatically convert the amount to a format that is suitable for the ATS you are using. For example, if you are using monthly salary expectations, we will convert the amount to a yearly salary if the ATS expects yearly salary expectations."},"social_links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"default":[],"description":"A list of social media links of the candidate. The links must be valid URLs."}},"required":["first_name","last_name","email_address"]},"application":{"type":"object","properties":{"job_id":{"type":"string","description":"The Kombo ID or Remote ID of the Job this candidate should apply to. If you want to use the ID of the integrated system (remote_id) you need to prefix the ID with \"remote:\". You can use the remote ID if you do not want to sync jobs."},"stage_id":{"type":"string","description":"Stage this candidate should be in. If left out, the default stage for this job will be used."}},"required":["job_id"],"description":"Currently, every candidate has one application. If you are interested in talent pools, please contact Kombo."},"screening_question_answers":{"type":"array","items":{"type":"object","properties":{"question_id":{"type":"string","description":"ID of the question returned by the Kombo API. We'll report a warning in the logs if the question can't be found on the job."},"answer":{"anyOf":[{"type":"string","description":"Answer to a `TEXT` question or the option ID of the answer to a `SINGLE_SELECT` question."},{"type":"boolean","description":"Answer to a `BOOLEAN` question."},{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Answer to a `NUMBER` question."},{"type":"array","items":{"type":"string"},"description":"Answer to a `MULTI_SELECT` question. The array elements are the IDs of the selected options."},{"description":"Answer to a `DATE` question as an ISO 8601 date string.","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"}},{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."}},"required":["name"],"description":"Answer to a `FILE` question."}],"description":"Answer to a question. This will be validated based on the question format and throw an error if the answer is invalid. Here is a description of each question type and the required answer format:\n\n`TEXT` - Simply provide a \"string\" answer.\n\n`SINGLE_SELECT` - Provide the ID of the answer as a string.\n\n`MULTI_SELECT` - Provide a string array containing the question IDs of the selected options.\n\n`BOOLEAN` - Either `true` or `false`.\n\n`NUMBER` - A number.\n\n`DATE` - Provide the answer as an ISO 8601 date string.\n\n`FILE` - Please select Option 6 in the dropdown above to see the required format."}},"required":["question_id","answer"]},"description":"Array of answers to screening questions. Currently, not all question types are supported, and unsupported ones will not be submitted.\n\nThe available questions for a job can be retrieved from the get jobs endpoint. The answers will be validated based on the format of the questions. Make sure to follow this schema to avoid errors.","examples":[[{"question_id":"D8yPrjXXvA2XeBksTmrVvKSn","answer":"Yes"}]]},"attachments":{"type":"array","items":{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."},"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"],"description":"Type of the attachment in the ATS. This may affect where the uploaded file will be shown in your customer's system."}},"required":["name","type"]},"default":[],"description":"An array of the attachments you would like upload."},"source":{"type":"object","properties":{"name":{"type":"string","description":"Name of the source (e.g., `\"Example Job Board\"`)."},"unified_key":{"type":"string"},"id":{"type":"string"}},"description":"**(⚠️ Deprecated - Use [automatic source writing](/ats/features/application-attribution#automatic-attribution) instead)** Optional source information that will be attached to the candidate. If\nyou're a job board or recruiting service, you can use this to make sure your\ncustomers can see which candidates came from you.\n\nThis is deprecated because writing sources requires users to do some setup in most ATSs."},"sourced_by":{"type":"object","properties":{"user_id":{"type":"string","description":"The Kombo ID or Remote ID of the User. Use the Kombo ID directly, or prefix the remote ID with \"remote:\" to reference the user by their ID in the remote system."}},"required":["user_id"],"description":"Credit the recruiter or team member who sourced this candidate.\n\nWhile the `source` field tracks the channel/platform (e.g., \"Awesome Jobboard\"), the `sourced_by` field tracks the individual person responsible for finding the candidate."},"gdpr_consent":{"type":"object","properties":{"expires_at":{"description":"Until when the candidate has granted the company they're applying to permission to process their personal data.","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"}},"given":{"type":"boolean","description":"Whether the candidate has given consent."}},"description":"Optional GDPR consent information required in some jurisdictions (like the Czech Republic or Slovakia)."},"remote_fields":{"allOf":[{"type":"object","properties":{"successfactors":{"type":"object","properties":{"Candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to SuccessFactor's `Candidate` object."},"JobApplication":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to SuccessFactor's `JobApplication` object."},"copyJobApplicationAttachments":{"type":"boolean","description":"If set to true, we will copy custom attachments from the JobApplication to the Candidate."},"update_existing_candidate":{"type":["boolean","null"],"description":"When the candidate already exists, whether to update the Candidate with the remote fields found under the Candidate entity."}},"description":"Fields specific to SAP SuccessFactors."},"personio":{"type":"object","properties":{"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Personio's `application` object."}},"description":"Fields specific to Personio."},"talentsoft":{"type":"object","properties":{"applicant":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to TalentSoft's `applicant` object."},"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to TalentSoft's `application` object."}},"description":"Fields specific to TalentSoft."},"teamtailor":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Teamtailor's `Candidate` object."},"application":{"type":"object","properties":{"attributes":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Teamtailor's attributes section `Job application` object."}}}}},"greenhouse":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Greenhouse's `Candidate` object."},"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Greenhouse's `Application` object."}},"description":"Fields specific to Greenhouse."},"lever":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Lever's `Candidate` object. Note: make sure to submit the keys and values in the correct form data format."}},"description":"Fields specific to Lever."},"workable":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Workable's `Candidate` object."}},"description":"Fields specific to Workable."},"workday":{"type":"object","properties":{"Candidate_Data":{"type":"object","properties":{"Name_Detail_Data":{"type":"object","properties":{"Middle_Name":{"type":"string","description":"The candidate's middle name"},"Social_Suffix_Reference":{"type":"object","properties":{"Predefined_Name_Component_ID":{"type":"string"}},"required":["Predefined_Name_Component_ID"],"description":"The WID of the social suffix reference for the candidate"}}},"Language_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"],"description":"Used to set the candidate's primary language"},"Job_Application_Data":{"type":"object","properties":{"Job_Applied_To_Data":{"type":"object","properties":{"Global_Personal_Information_Data":{"type":"object","properties":{"Date_of_Birth":{"type":"string"}}}}},"Resume_Data":{"type":"object","properties":{"Education_Data":{"type":"array","items":{"type":"object","properties":{"School_Name":{"type":"string"},"First_Year_Attended":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"Last_Year_Attended":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"Field_of_Study_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Degree_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Grade_Average":{"type":"string"}}}},"Skill_Data":{"type":"array","items":{"type":"object","properties":{"Skill_Name":{"type":"string"}}}},"Language_Data":{"type":"array","items":{"type":"object","properties":{"Language_Reference":{"type":"object","properties":{"WID":{"type":"string"}}},"Language":{"type":"object","properties":{"Native":{"type":"boolean"},"Language_Ability":{"type":"array","items":{"type":"object","properties":{"Language_Ability_Data":{"type":"object","properties":{"Language_Proficiency_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Language_Ability_Type_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]}}}}}}},"required":["Language_Ability"]}}}},"Experience_Data":{"type":"array","items":{"type":"object","properties":{"Company_Name":{"type":"string"},"Title":{"type":"string"},"Location":{"type":"string"},"Start_Date":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","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":"YYYY-MM-DDTHH:mm:ss.sssZ","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"}},"Currently_Work_Here":{"type":"boolean"},"Description":{"type":"string"}},"required":["Company_Name","Title","Start_Date"]}}}}}},"Contact_Data":{"type":"object","properties":{"Location_Data":{"type":"object","properties":{"Address_Line_1":{"type":"string"},"Address_Line_2":{"type":"string"},"Region_Subdivision_1":{"type":"string"},"Country_Region_Reference":{"type":"object","properties":{"Country_Region_ID":{"type":"string"}},"required":["Country_Region_ID"]},"Country_City_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]}}}}},"Worker_Reference":{"type":"object","properties":{"WID":{"type":"string"},"Employee_ID":{"type":"string"}},"description":"Reference to the Worker (employee) to link the candidate to. Provide either WID or Employee_ID."}}},"Override_Source_Reference_WID":{"type":"string","description":"Used to override the automatic source WID."}},"description":"Fields specific to Workday. The remote fields schema follows the documentation at https://community.workday.com/sites/default/files/file-hosting/productionapi/Recruiting/v43.0/Put_Candidate.html. Only defined fields are supported, if you need additional field support please reach out to Kombo support."},"zohorecruit":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Zoho Recruit's `Candidate` object."}},"description":"Fields specific to Zoho Recruit."},"bullhorn":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Bullhorn's `Candidate` object."},"job_submission":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Bullhorn's `JobSubmission` object."}},"description":"Fields specific to Bullhorn."},"smartrecruiters":{"type":"object","properties":{"candidate_with_questions":{"type":"object","additionalProperties":true,"description":"**(⚠️ Deprecated - Use the `candidate` field instead.)** Fields that we will pass through to the SmartRecruiters's `Candidate` object when created with screening question answers. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1"},"candidate_without_questions":{"type":"object","additionalProperties":true,"description":"**(⚠️ Deprecated - Use the `candidate` field instead.)** Fields that we will pass through to the SmartRecruiters's `Candidate` object when created with screening question answers. This API is used: https://developers.smartrecruiters.com/reference/candidatesaddtojob-1"},"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to the SmartRecruiters's `Candidate` object. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1"}},"description":"Fields specific to SmartRecruiters."},"talentadore":{"type":"object","properties":{"applications":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to the Talentadore's when creating applications."}},"description":"Fields specific to Talentadore."},"guidecom":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to GuideCom's `Candidate` object."}},"description":"Fields specific to GuideCom."},"dvinci":{"type":"object","properties":{"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to d.vinci's application object. This API is used: https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html#jobs__id__applyApi_post"},"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to d.vinci's candidate/application payload as top-level fields (e.g., dateOfBirth)."}},"description":"Fields specific to d.vinci."},"hrworks":{"type":"object","properties":{"jobApplication":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to HRWorks's `Job Application` object. This API is used: https://developers.hrworks.de/docs/hrworks-api-v2/53021f035f62d-post-job-applications"}},"description":"Fields specific to GuideCom."},"jobylon":{"type":"object","properties":{"application":{"type":"object","properties":{"message":{"type":"string","description":"The `message` field of Jobylon's create application endpoint's request body."}},"description":"Fields that we will pass through to Jobylon's create application [endpoint](https://developer.jobylon.com/push-api-and-webhooks#-xL0v)'s request body."}},"description":"Fields specific to Jobylon."},"avature":{"type":"object","properties":{"workflow":{"type":"object","properties":{"step":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"The ID of the workflow step to assign to the candidate."}},"required":["id"]}}}},"description":"Fields specific to Avature."},"recruitee":{"type":"object","properties":{"candidate":{"type":"object","properties":{"cover_letter_text":{"type":"string","description":"The cover letter text as a string. This will be visible on the main candidate page. Can be provided together with the `cover_letter` attachment, which will end up in a separate `file` section."}}}},"description":"Fields specific to Recruitee."},"rexx":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Rexx's application form fields."}},"description":"Fields specific to Rexx."},"umantis":{"type":"object","properties":{"person":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Abacus Umantis's \"Create a person\" endpoint's `attributes` when creating a candidate."}},"description":"Fields specific to Abacus Umantis."},"piloga":{"type":"object","properties":{"candidate":{"type":"object","properties":{"street":{"type":"string","description":"The street address of the candidate."}},"description":"Additional candidate fields for P&I Loga that will be mapped to the application form."}},"description":"Fields specific to P&I Loga."},"pinpoint":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Pinpoint's `Candidate` object."}},"description":"Fields specific to Pinpoint."},"covetorest":{"type":"object","properties":{"candidate":{"type":"object","properties":{"mandant":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The mandant field for the candidate in Coveto."}},"description":"Additional candidate fields that will be passed to the Coveto candidate creation."}},"description":"Fields specific to Coveto REST."}},"description":"Additional fields that we will pass through to specific ATS systems."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["candidate","application"]},"GetAtsCandidatesCandidateIdAttachmentsParameterCandidateId":{"type":"string","description":"The Kombo ID of the candidate you want to obtain attachments for."},"GetAtsCandidatesCandidateIdAttachmentsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[1-9A-HJ-NP-Za-km-z]+$"},"application_id":{"type":["string","null"],"minLength":24,"maxLength":24,"pattern":"^[1-9A-HJ-NP-Za-km-z]+$","description":"The Kombo ID of the application this attachment belongs to. When this is null, the attachment is not specific to any application but the candidate."},"candidate_id":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[1-9A-HJ-NP-Za-km-z]+$","description":"The Kombo ID of the candidate this attachment belongs to."},"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"]},"remote_id":{"type":"string"},"data_url":{"type":"string"},"file_name":{"type":"string"},"content_type":{"type":"string","description":"The MIME type of the attachment."},"remote_created_at":{"description":"The date when the attachment was created.","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":"The date when the attachment 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"}}},"required":["id","application_id","candidate_id","type","remote_id","data_url","file_name","content_type","remote_created_at","remote_updated_at"]}}},"required":["results"],"examples":[{"results":[{"id":"EYJjhMQT3LtVKXnTbnRT8s6U","application_id":null,"candidate_id":"BTbkvY2w5ou3z3hdwuKcKzDh","type":"CV","remote_id":"GUzE666zfyjeoCJX6A8n7wh6","data_url":"https://resources.kombo.dev/EYJjhMQT3LtVKXnTbnRT8s6U","file_name":"Frank Doe CV.pdf","content_type":"application/pdf","remote_created_at":null,"remote_updated_at":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"]},"PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId":{"type":"string","description":"The Kombo ID of the candidate you want to add the attachment to."},"PostAtsCandidatesCandidateIdAttachmentsPositiveResponse":{"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"]},"PostAtsCandidatesCandidateIdAttachmentsRequestBody":{"type":"object","properties":{"attachment":{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."},"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"],"description":"Type of the attachment in the ATS. This may affect where the uploaded file will be shown in your customer's system."}},"required":["name","type"]},"remote_fields":{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["attachment"]},"PostAtsCandidatesCandidateIdResultLinksParameterCandidateId":{"type":"string","description":"The Kombo ID of the candidate you want to add the result link to."},"PostAtsCandidatesCandidateIdResultLinksPositiveResponse":{"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"]},"PostAtsCandidatesCandidateIdResultLinksRequestBody":{"type":"object","properties":{"label":{"type":"string","description":"If the system allows us to display a display name for the link, we will use this label."},"url":{"type":"string","format":"uri","description":"URL of the link."},"details":{"type":"object","properties":{"custom_field_name_prefix":{"type":"string","description":"That will be added to the attribute labels if they are used for custom fields. If you specify `Acme:` as the prefix, the custom field will be named `Acme: Score`. Putting in the name of your company/product is a good idea."},"attributes":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The name of the attribute"},"value":{"type":"string","description":"The value of the attribute"}},"required":["key","value"]}}},"required":["custom_field_name_prefix","attributes"],"description":"Additional details with attributes that will be added to the result. This can be percentages, scores, or any text.\n\nWe generally recommend using short attribute keys and a short custom_field_name_prefix to avoid overflowing the ATS UI."},"remote_fields":{"allOf":[{"type":"object","properties":{"icims":{"type":"object","properties":{"assessment_package_id":{"type":"string","description":"The package ID of the assessment that the result link will be added to."}},"description":"Fields specific to iCIMS."},"oracle":{"type":"object","properties":{"override_document_category":{"type":"string","enum":["IRC_CANDIDATE_RESUME","IRC_CANDIDATE_COVERLETTER","MISC","IRC_INTERNAL"],"description":"Allows you to override the document category for the url. (Default: MISC)"},"multi_post_to_all_current_applications":{"type":"boolean","description":"If true, the result link will be posted to all current applications for the candidate."}},"description":"Fields specific to Oracle."}},"description":"Additional fields that we will pass through to specific ATS systems."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["label","url"]},"PostAtsCandidatesCandidateIdTagsParameterCandidateId":{"type":"string","description":"The Kombo ID of the candidate you want to add the tag to."},"PostAtsCandidatesCandidateIdTagsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PostAtsCandidatesCandidateIdTagsRequestBody":{"type":"object","properties":{"tag":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"The name of the tag you would like to add. We will automatically find the matching ID of the tag in the system."}},"required":["name"]},"remote_fields":{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["tag"]},"DeleteAtsCandidatesCandidateIdTagsParameterCandidateId":{"type":"string","description":"The Kombo ID of the candidate you want to remove the tag from."},"DeleteAtsCandidatesCandidateIdTagsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"DeleteAtsCandidatesCandidateIdTagsRequestBody":{"type":"object","properties":{"tag":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tag you would like to remove."}},"required":["name"]},"remote_fields":{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["tag"]},"GetAtsTagsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsTagsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsTagsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsTagsParameterIncludeDeleted":{"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."},"GetAtsTagsParameterIgnoreUnsupportedFilters":{"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."},"GetAtsTagsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsTagsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsTagsPositiveResponse":{"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"]},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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":"High Potential","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":"High Potential","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}]}]}},"required":["status","data"]},"GetAtsApplicationStagesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsApplicationStagesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsApplicationStagesParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsApplicationStagesParameterIncludeDeleted":{"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."},"GetAtsApplicationStagesParameterIgnoreUnsupportedFilters":{"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."},"GetAtsApplicationStagesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsApplicationStagesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsApplicationStagesPositiveResponse":{"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 application stage name. For example, \"Initial Screening\"."},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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":"5J7L4b48wBfffYwek9Az9pkM","remote_id":"32","name":"Initial Screening","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"5J7L4b48wBfffYwek9Az9pkM","remote_id":"32","name":"Initial Screening","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}]}]}},"required":["status","data"]},"GetAtsJobsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsJobsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsJobsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsJobsParameterIncludeDeleted":{"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."},"GetAtsJobsParameterIgnoreUnsupportedFilters":{"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."},"GetAtsJobsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsJobsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsJobsParameterJobCodes":{"type":"string","description":"Filter by a comma-separated list of job codes."},"GetAtsJobsParameterPostUrl":{"type":"string","description":"Filter by the `post_url` field. Can be used to find a job based on its public posting URL."},"GetAtsJobsParameterStatus":{"type":"string","enum":["OPEN","CLOSED","DRAFT","ARCHIVED"],"description":"**(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the `status` field. Can be used to find a job based on its status."},"GetAtsJobsParameterStatuses":{"type":"string","description":"Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, `ARCHIVED` \n\nLeave this blank to get results matching all values."},"GetAtsJobsParameterEmploymentTypes":{"type":"string","description":"Filter by a comma-separated list of `FULL_TIME`, `PART_TIME`, `CONTRACT`, `SEASONAL`, `INTERNSHIP` \n\nLeave this blank to get results matching all values."},"GetAtsJobsParameterVisibilities":{"type":"string","description":"Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, `CONFIDENTIAL` \n\nLeave this blank to get results matching all values."},"GetAtsJobsParameterRemoteCreatedAfter":{"description":"Filter jobs by the day they were created in the remote system. This allows you to get jobs that were created on or after a certain day.","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"}},"GetAtsJobsParameterNameContains":{"type":"string","description":"Filter by the `name` field. Can be used to find a job by keywords present in the job name."},"GetAtsJobsPositiveResponse":{"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":"Title of the job."},"job_code":{"type":["string","null"],"description":"The human readable job code. Some systems expose this as the Requisition Code/ID."},"description":{"type":["string","null"],"description":"Description of the job. This field is usually returned as HTML."},"confidential":{"type":["boolean","null"],"description":"**(⚠️ Deprecated)** It makes more sense to store the visibility of a job in an enum. Therefore, we introduced the `visibility` enum on jobs."},"weekly_hours":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The number of hours per week an employee is expected to work."},"employment_type":{"anyOf":[{"type":"string","enum":["FULL_TIME","PART_TIME","CONTRACT","SEASONAL","INTERNSHIP"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"The type of employment contract. In rare cases where can't find a clear mapping, the original string is passed through."},"status":{"anyOf":[{"type":"string","enum":["OPEN","CLOSED","DRAFT","ARCHIVED"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"The job's current status.\n\n*Note: For any checks (e.g., \"can we publish this job?\"), always evaluate both `status` and `visibility`. For example, a job can be `status=OPEN` with `visibility=INTERNAL`, meaning only existing employees can apply.*\n\n In rare cases where we can’t find a clear mapping, the original string is passed through."},"visibility":{"anyOf":[{"type":"string","enum":["PUBLIC","INTERNAL","UNLISTED","CONFIDENTIAL"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"Describes the visibility of the job:\n\n- `PUBLIC`: visible to everyone, published on a job board\n- `INTERNAL`: only visible to employees of the company itself\n- `UNLISTED`: anyone can apply but only if they have the link to it\n- `CONFIDENTIAL`: nobody can apply and it's only visible in the ATS to people who were invited to it\n\n*Note: For any checks (e.g., \"can we publish this job?\"), always evaluate both `status` and `visibility`.*\n\n In rare cases where we can’t find a clear mapping, the original string is passed through."},"category":{"type":["string","null"],"description":"The category of the job (often the job industry). The original string is passed through, for example \"Information Technology\", \"Quality Assurance\", \"Marketing\"."},"department":{"type":["string","null"],"description":"The internal department or team the job belongs to. The original string is passed through, for example \"IT/Operations\", \"Engineering - Platform\", \"Customer Success\"."},"post_url":{"type":["string","null"],"description":"The public job posting URL of the ATS itself. This can be used by external job boards to redirect applicants."},"experience_level":{"type":["string","null"],"description":"The role's seniority or experience level. The original string is passed through, for example \"Mid-Senior Level\", \"5+ years\", \"Associate\", \"IC3\"."},"remote_work_status":{"anyOf":[{"type":"string","enum":["REMOTE","HYBRID","TEMPORARY","ON_SITE"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"Defines if the job supports remote work and if so, to what extent."},"salary_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The salary amount in the given currency."},"salary_amount_from":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The lower bound of the salary range."},"salary_amount_to":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The upper bound of the salary range."},"salary_currency":{"type":["string","null"],"description":"Salary currency usually returned in [ISO 4217 currency codes](https://www.iso.org/iso-4217-currency-codes.html)."},"salary_period":{"anyOf":[{"type":"string","enum":["YEAR","MONTH","TWO_WEEKS","WEEK","DAY","HOUR"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"The period of time over which the salary amount is paid (not equal to the pay frequency). In rare cases where we can’t find a clear mapping, the original string is passed through."},"location":{"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 location of the listed job."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the job posting in the source ATS system."},"opened_at":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"closed_at":{"description":"The date the job closed or is scheduled to close. A future value typically indicates the job remains open for applications until that date.\n\nPlease use the `status` and `visibility` fields to determine if a job can be published.","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"}},"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"}},"contact_id":{"type":["string","null"],"description":"**(⚠️ Deprecated)** The user ID of the contact person for this job. We strongly recommend using the new `hiring_team` property instead as it provides more complete and accurate information about the ATS users connected to a job."},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"stages":{"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 application stage name. For example, \"Initial Screening\"."},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"index":{"type":["integer","null"],"format":"int64","description":"Numeric index following the order of the stages if they are ordered in the underlying tool."}},"required":["id","remote_id","name","remote_data"],"examples":[{"id":"5J7L4b48wBfffYwek9Az9pkM","remote_id":"32","name":"Initial Screening","remote_data":null,"index":0}]},"description":"Application stages a candidate can be in for this particular job. "},"screening_questions":{"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."},"title":{"type":["string","null"]},"description":{"type":["string","null"],"description":"Additional instructions or context. Typically a short sentence, but sometimes a long detailed description (e.g., for EEO questions). May include HTML for extra formatting."},"format":{"anyOf":[{"type":"object","properties":{"display_type":{"type":["string","null"],"enum":["SINGLE_LINE","MULTI_LINE","EMAIL","URL"],"description":"If unavailable, we recommend displaying a single-line input."},"max_length":{"type":["integer","null"],"format":"int64"},"type":{"type":"string","const":"TEXT"}},"required":["type"]},{"type":"object","properties":{"display_type":{"type":["string","null"],"enum":["SLIDER","FIELD"],"default":"FIELD"},"max":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"min":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"type":{"type":"string","const":"NUMBER"}},"required":["type"]},{"type":"object","properties":{"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"}},"max_file_size_bytes":{"type":["integer","null"],"format":"int64"},"type":{"type":"string","const":"FILE"}},"required":["type"]},{"type":"object","properties":{"display_type":{"type":["string","null"],"enum":["DROPDOWN","RADIO"]},"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The Kombo ID of this question option. Use this ID to specify the answer to this question."},"remote_id":{"type":["string","null"],"description":"ID in the connected ATS. This might be null as some systems only use the name to identify the option."},"name":{"type":"string","description":"Content of the question option."}},"required":["id","name"]}},"type":{"type":"string","const":"SINGLE_SELECT"}},"required":["options","type"]},{"type":"object","properties":{"type":{"type":"string","const":"BOOLEAN"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"DATE"}},"required":["type"]},{"type":"object","properties":{"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The Kombo ID of this question option. Use this ID to specify the answer to this question."},"remote_id":{"type":["string","null"],"description":"ID in the connected ATS. This might be null as some systems only use the name to identify the option."},"name":{"type":"string","description":"Content of the question option."}},"required":["id","name"]}},"type":{"type":"string","const":"MULTI_SELECT"}},"required":["options","type"]},{"type":"object","properties":{"type":{"type":"string","const":"INFORMATION","description":"This is just a text block."}},"required":["type"]},{"type":"object","properties":{"raw_question":{"description":"We pass the original question data along so you can handle it."},"type":{"type":"string","const":"UNKNOWN","description":"When we're not able to map a specific question type yet, we will return this type. Every `UNKNOWN` question will also be parsed and unified by us at some point."}},"required":["type"]},{"type":"null"}]},"category":{"type":["string","null"],"enum":["EEO","DEMOGRAPHIC"],"description":"The category of the screening question (default `null`). \"EEO\" questions are related to Equal Employment Opportunity (e.g. \"What is your veteran status?\"), while \"DEMOGRAPHIC\" questions are for other diversity and demographic data collection."},"index":{"type":["integer","null"],"format":"int64"},"required":{"type":["boolean","null"]},"precondition_question_id":{"type":["string","null"],"minLength":24,"maxLength":24,"pattern":"^[1-9A-HJ-NP-Za-km-z]+$","description":"The Kombo ID of another screening question. Only display this question if the specified \"precondition question\" is answered with one of the values in `precondition_options`."},"precondition_options":{"anyOf":[{"type":"array","items":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[1-9A-HJ-NP-Za-km-z]+$"}},{"type":"array","items":{"type":"boolean"}},{"type":"null"}],"default":null,"description":"Where the screening question specified by `precondition_question_id` is of type `MULTI_SELECT` or `SINGLE_SELECT`, this is an array of Kombo IDs describing the valid options. If the question is of type `BOOLEAN`, this is an array containing either `true` or `false`."}},"required":["id","remote_id","title","description","category","required"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"48b4d36a-1d4b-4c50-ada7-9519078e65b4","title":"Which is your primary programming language?","description":"Please enter the language you are most comfortable with.","format":{"display_type":"SINGLE_LINE","max_length":null,"type":"TEXT"},"category":null,"index":0,"required":true,"precondition_question_id":"4ZVteCSSgDw3BdwGzcQqGEPk","precondition_options":["7qd5qjPwDHarsMLFMGzXYG1K"]}]}},"job_postings":{"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."},"title":{"type":["string","null"],"description":"The job posting’s title."},"description_html":{"type":["string","null"],"description":"The job posting’s description in HTML format."},"status":{"type":["string","null"],"enum":["ACTIVE","INACTIVE","DRAFT"],"description":"The job posting’s current status."},"visibility":{"type":["string","null"],"enum":["PUBLIC","INTERNAL","UNLISTED"]},"url":{"type":["string","null"],"description":"The public URL to the job posting on the ATS platform."},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."}},"required":["id","remote_id","title","description_html","status","visibility","url","remote_data"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"48b4d36a-1d4b-4c50-ada7-9519078e65b4","title":"Frontend Engineer","description_html":"We are looking for a Frontend Engineer.
","status":"ACTIVE","visibility":"PUBLIC","url":"https://jobs.example.com/post/159829112","remote_data":null}]}},"hiring_team":{"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."},"first_name":{"type":["string","null"],"description":"First name of the user."},"last_name":{"type":["string","null"],"description":"Last name of the user."},"email":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$","description":"Email of the user. If the email address is invalid, it will be set to null."},"hiring_team_roles":{"type":"array","items":{"type":"string","enum":["RECRUITER","HIRING_MANAGER"],"examples":["RECRUITER"]},"description":"**(⚠️ Deprecated - Use `job_roles` to access the full list of job roles.)** Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema."},"job_roles":{"type":"array","items":{"type":"object","properties":{"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."},"remote_label":{"type":["string","null"],"description":"The label of the role."},"scope":{"type":["string","null"],"enum":["SYSTEM","JOB"],"examples":["JOB"],"description":"Whether the role applies globally or is scoped to a specific job."},"unified_type":{"type":["string","null"],"enum":["HIRING_MANAGER","RECRUITER","ADMIN"],"description":"Unified role type if Kombo can map it."}},"required":["remote_id","remote_label","scope","unified_type"],"examples":[{"remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER"},{"remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER"}]},"description":"Roles assigned to this user for this job.\n\nNote: Use `system_roles` on the `/v1/ats/users` endpoint for system-wide roles."}},"required":["id","remote_id","first_name","last_name","hiring_team_roles","job_roles"]},"description":"The hiring team allows you to sync users into your system who can access the job and its applications."}},"required":["id","remote_id","name","job_code","description","confidential","weekly_hours","category","department","post_url","experience_level","salary_amount","salary_amount_from","salary_amount_to","salary_currency","custom_fields","integration_fields","remote_url","opened_at","closed_at","remote_created_at","remote_updated_at","contact_id","remote_data","changed_at","remote_deleted_at","stages","screening_questions","job_postings","hiring_team"]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer","job_code":"BE-2021-01","description":"Kombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.
","confidential":false,"weekly_hours":37,"employment_type":"FULL_TIME","status":"OPEN","visibility":"PUBLIC","category":"Technical Job","department":"Engineering","post_url":"https://jobs.example.com/post/159829112","experience_level":"Mid-Senior","remote_work_status":"HYBRID","salary_amount":4200,"salary_amount_from":null,"salary_amount_to":null,"salary_currency":"EUR","salary_period":"MONTH","location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://app.greenhouse.io/jobs/32","opened_at":"2022-08-07T14:01:29.196Z","closed_at":null,"remote_created_at":"2022-08-07T14:01:29.196Z","remote_updated_at":"2022-08-07T14:01:29.196Z","contact_id":"6gT2yLMBEipd3zpezATv3Rhu","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"stages":[{"id":"5J7L4b48wBfffYwek9Az9pkM","remote_id":"32","name":"Initial Screening","remote_data":null,"index":0}],"screening_questions":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"48b4d36a-1d4b-4c50-ada7-9519078e65b4","title":"Which is your primary programming language?","description":"Please enter the language you are most comfortable with.","format":{"display_type":"SINGLE_LINE","max_length":null,"type":"TEXT"},"category":null,"index":0,"required":true,"precondition_question_id":"4ZVteCSSgDw3BdwGzcQqGEPk","precondition_options":["7qd5qjPwDHarsMLFMGzXYG1K"]}],"job_postings":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"48b4d36a-1d4b-4c50-ada7-9519078e65b4","title":"Frontend Engineer","description_html":"We are looking for a Frontend Engineer.
","status":"ACTIVE","visibility":"PUBLIC","url":"https://jobs.example.com/post/159829112","remote_data":null}],"hiring_team":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email":"john.doe@kombo.dev","hiring_team_roles":["RECRUITER"],"job_roles":[{"remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER"}]}]}]}]}},"required":["status","data"]},"PostAtsJobsJobIdApplicationsParameterJobId":{"type":"string","description":"The Kombo ID or Remote ID of the Job this candidate should apply for. If you want to use the ID of the integrated system (remote_id) you need to prefix the id with \"remote:\". You can use the remote ID if you do not want to sync jobs."},"PostAtsJobsJobIdApplicationsPositiveResponse":{"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."},"outcome":{"type":["string","null"],"enum":["PENDING","HIRED","DECLINED"],"description":"Parsed status of the application. If Kombo identifies that the application was accepted and the candidate hired, it will be `HIRED`. If the application was rejected or the candidate declined, it will be `DECLINED`. If the application is still in process, it will be `PENDING`.\nKombo will always try to deliver this information as reliably as possible."},"rejection_reason_name":{"type":["string","null"],"description":"Reason for the rejection of the candidate."},"rejected_at":{"description":"The time that the application was rejected.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"current_stage_id":{"type":["string","null"],"description":"ID of the current application stage"},"job_id":{"type":["string","null"],"description":"The Kombo ID of the job which the candidate applied to. The ID can be used to retrieve the job from the `get jobs` endpoint."},"candidate_id":{"type":["string","null"],"description":"The Kombo ID of the candidate who applied to the job. The ID can be used to retrieve the candidate from the `get candidates` endpoint."},"screening_question_answers":{"type":["array","null"],"items":{"anyOf":[{"type":"object","properties":{"answer":{"type":"object","properties":{"content":{"type":["string","null"]}},"required":["content"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"TEXT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"choice":{"type":["string","null"]}},"required":["choice"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"SINGLE_SELECT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"choices":{"type":"array","items":{"type":"string"},"default":[]}}},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"MULTI_SELECT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"checked":{"type":["boolean","null"]}},"required":["checked"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"BOOLEAN"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"number":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308}},"required":["number"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"NUMBER"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"date":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"}},"required":["date"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"DATE"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"raw":{"type":"null","description":"We pass the original question data along so you can handle it."}}},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"UNKNOWN","description":"When we're not able to map a specific question type yet, we will return this type. Every `UNKNOWN` question will also be parsed and unified by us at some point."}},"required":["remote_id","title","type"]}},"required":["answer","question"]}]},"default":[],"description":"A list of answers to screening questions. The screening answer type `FILE` is currently unsupported."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the application in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated application URL is available, so you might need to fall back to the candidate URL."},"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_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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"current_stage":{"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."},"name":{"type":["string","null"],"description":"The application stage name. For example, \"Initial Screening\"."},"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."},"index":{"type":["integer","null"],"format":"int64","examples":[2]}},"required":["id","name","remote_id","index"]},"job":{"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."},"name":{"type":["string","null"],"description":"Title of the job."},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}]},"candidate":{"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":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"company":{"type":["string","null"],"description":"The current company of the candidate."},"title":{"type":["string","null"],"description":"The current job title of the candidate."},"confidential":{"type":["boolean","null"],"description":"Whether the candidate’s profile is confidential in the ATS."},"source":{"type":["string","null"],"description":"The hiring source of the candidate. If you're a job board or recruiting service, you can use this to validate which candidates applied through your service and ensure that the correct referral compensation is paid out."},"phone_numbers":{"type":["array","null"],"items":{"type":"object","properties":{"phone_number":{"type":"string"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["phone_number"]},"default":[],"description":"A list of phone numbers of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."},"social_media":{"type":["array","null"],"items":{"type":"object","properties":{"link":{"type":["string","null"]},"type":{"type":["string","null"]},"username":{"type":["string","null"]}}},"default":[],"description":"List of social media accounts of the candidate."},"location":{"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":"Location of the candidate."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the candidate profile in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated candidate profile URL is available, so you might need to fall back to the application URL."},"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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"tags":{"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."},"name":{"type":["string","null"]},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}}},"required":["id","remote_id","first_name","last_name","company","title","confidential","source","custom_fields","integration_fields","remote_url","remote_created_at","remote_updated_at","remote_data","changed_at","remote_deleted_at","tags"]}},"required":["id","remote_id","outcome","rejection_reason_name","rejected_at","current_stage_id","job_id","candidate_id","custom_fields","integration_fields","remote_url","changed_at","remote_deleted_at","remote_created_at","remote_updated_at","remote_data","current_stage","job","candidate"],"examples":[{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"PENDING","rejection_reason_name":null,"rejected_at":null,"current_stage_id":"5J7L4b48wBfffYwek9Az9pkM","job_id":"H5daSm8e85Dmvmne3wLeCPhX","candidate_id":"26vafvWSRmbhNcxJYqjCzuJg","screening_question_answers":[],"custom_fields":{},"integration_fields":[],"remote_url":"https://example.com/applications/32","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","name":"Interview","remote_id":"5","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Head of Integrations","remote_id":"1"},"candidate":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","company":"Acme, Inc.","title":"Head of Marketing","confidential":false,"source":"Employee Referral","phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://example.com/candidates/32","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"changed_at":"2022-04-04T00:00:00.000Z","remote_deleted_at":null,"tags":[{"id":"7DHDky9zk4qnWkycuuQjFXNh","name":"Fast Learner","remote_id":"1"}]}}]},"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"]},"PostAtsJobsJobIdApplicationsRequestBody":{"type":"object","properties":{"stage_id":{"type":"string","description":"Stage this candidate should be in. If left out, the default stage for this job will be used. You can obtain the possible `stage_id`s from the `get-jobs` endpoint."},"candidate":{"type":"object","properties":{"first_name":{"type":"string","description":"The first name of the candidate."},"last_name":{"type":"string","description":"The last name of the candidate."},"email_address":{"type":"string","description":"The primary email address this application will be created with.","format":"email"},"additional_email_addresses":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PERSONAL","WORK","OTHER"]},"email_address":{"type":"string","format":"email"}},"required":["type","email_address"]}},"company":{"type":"string","description":"The company where the candidate is currently working."},"title":{"type":"string","description":"The current job title of the candidate."},"phone_number":{"type":"string","description":"The phone number of the candidate."},"additional_phone_numbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PERSONAL","WORK","OTHER"]},"phone_number":{"type":"string"}},"required":["type","phone_number"]}},"location":{"type":"object","properties":{"city":{"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."},"state":{"type":"string"},"street_1":{"type":"string"},"zip_code":{"type":"string"}},"required":["country"],"description":"The location of the candidate."},"gender":{"type":"string","enum":["MALE","FEMALE","OTHER"],"description":"The gender of the candidate. Must be one of `MALE`, `FEMALE`, or `OTHER`."},"availability_date":{"description":"The date the candidate is available to start working.","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"}},"salary_expectations":{"type":"object","properties":{"period":{"type":"string","enum":["MONTH","YEAR"],"description":"The period of the salary expectations. Must be one of `MONTH` or `YEAR`."},"amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The amount of the salary expectations."}},"required":["period","amount"],"description":"The salary expectations of the applicant. We will automatically convert the amount to a format that is suitable for the ATS you are using. For example, if you are using monthly salary expectations, we will convert the amount to a yearly salary if the ATS expects yearly salary expectations."},"social_links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"default":[],"description":"A list of social media links of the candidate. The links must be valid URLs."}},"required":["first_name","last_name","email_address"]},"attachments":{"type":"array","items":{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."},"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"],"description":"Type of the attachment in the ATS. This may affect where the uploaded file will be shown in your customer's system."}},"required":["name","type"]},"default":[],"description":"Array of the attachments you would like to upload. The first CV in the attachments will be treated as the resume of the candidate when the tool allows previewing a resume."},"source":{"type":"object","properties":{"name":{"type":"string","description":"Name of the source (e.g., `\"Example Job Board\"`)."},"unified_key":{"type":"string"},"id":{"type":"string"}},"description":"**(⚠️ Deprecated - Use [automatic source writing](/ats/features/application-attribution#automatic-attribution) instead)** Optional source information that will be attached to the candidate. If\nyou're a job board or recruiting service, you can use this to make sure your\ncustomers can see which candidates came from you.\n\nThis is deprecated because writing sources requires users to do some setup in most ATSs."},"sourced_by":{"type":"object","properties":{"user_id":{"type":"string","description":"The Kombo ID or Remote ID of the User. Use the Kombo ID directly, or prefix the remote ID with \"remote:\" to reference the user by their ID in the remote system."}},"required":["user_id"],"description":"Credit the recruiter or team member who sourced this candidate.\n\nWhile the `source` field tracks the channel/platform (e.g., \"Awesome Jobboard\"), the `sourced_by` field tracks the individual person responsible for finding the candidate."},"gdpr_consent":{"type":"object","properties":{"expires_at":{"description":"Until when the candidate has granted the company they're applying to permission to process their personal data.","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"}},"given":{"type":"boolean","description":"Whether the candidate has given consent."}},"description":"Optional GDPR consent information required in some jurisdictions (like the Czech Republic or Slovakia)."},"remote_fields":{"allOf":[{"type":"object","properties":{"successfactors":{"type":"object","properties":{"Candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to SuccessFactor's `Candidate` object."},"JobApplication":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to SuccessFactor's `JobApplication` object."},"copyJobApplicationAttachments":{"type":"boolean","description":"If set to true, we will copy custom attachments from the JobApplication to the Candidate."},"update_existing_candidate":{"type":["boolean","null"],"description":"When the candidate already exists, whether to update the Candidate with the remote fields found under the Candidate entity."}},"description":"Fields specific to SAP SuccessFactors."},"personio":{"type":"object","properties":{"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Personio's `application` object."}},"description":"Fields specific to Personio."},"talentsoft":{"type":"object","properties":{"applicant":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to TalentSoft's `applicant` object."},"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to TalentSoft's `application` object."}},"description":"Fields specific to TalentSoft."},"teamtailor":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Teamtailor's `Candidate` object."},"application":{"type":"object","properties":{"attributes":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Teamtailor's attributes section `Job application` object."}}}}},"greenhouse":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Greenhouse's `Candidate` object."},"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Greenhouse's `Application` object."}},"description":"Fields specific to Greenhouse."},"lever":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Lever's `Candidate` object. Note: make sure to submit the keys and values in the correct form data format."}},"description":"Fields specific to Lever."},"workable":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Workable's `Candidate` object."}},"description":"Fields specific to Workable."},"workday":{"type":"object","properties":{"Candidate_Data":{"type":"object","properties":{"Name_Detail_Data":{"type":"object","properties":{"Middle_Name":{"type":"string","description":"The candidate's middle name"},"Social_Suffix_Reference":{"type":"object","properties":{"Predefined_Name_Component_ID":{"type":"string"}},"required":["Predefined_Name_Component_ID"],"description":"The WID of the social suffix reference for the candidate"}}},"Language_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"],"description":"Used to set the candidate's primary language"},"Job_Application_Data":{"type":"object","properties":{"Job_Applied_To_Data":{"type":"object","properties":{"Global_Personal_Information_Data":{"type":"object","properties":{"Date_of_Birth":{"type":"string"}}}}},"Resume_Data":{"type":"object","properties":{"Education_Data":{"type":"array","items":{"type":"object","properties":{"School_Name":{"type":"string"},"First_Year_Attended":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"Last_Year_Attended":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"Field_of_Study_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Degree_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Grade_Average":{"type":"string"}}}},"Skill_Data":{"type":"array","items":{"type":"object","properties":{"Skill_Name":{"type":"string"}}}},"Language_Data":{"type":"array","items":{"type":"object","properties":{"Language_Reference":{"type":"object","properties":{"WID":{"type":"string"}}},"Language":{"type":"object","properties":{"Native":{"type":"boolean"},"Language_Ability":{"type":"array","items":{"type":"object","properties":{"Language_Ability_Data":{"type":"object","properties":{"Language_Proficiency_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Language_Ability_Type_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]}}}}}}},"required":["Language_Ability"]}}}},"Experience_Data":{"type":"array","items":{"type":"object","properties":{"Company_Name":{"type":"string"},"Title":{"type":"string"},"Location":{"type":"string"},"Start_Date":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","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":"YYYY-MM-DDTHH:mm:ss.sssZ","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"}},"Currently_Work_Here":{"type":"boolean"},"Description":{"type":"string"}},"required":["Company_Name","Title","Start_Date"]}}}}}},"Contact_Data":{"type":"object","properties":{"Location_Data":{"type":"object","properties":{"Address_Line_1":{"type":"string"},"Address_Line_2":{"type":"string"},"Region_Subdivision_1":{"type":"string"},"Country_Region_Reference":{"type":"object","properties":{"Country_Region_ID":{"type":"string"}},"required":["Country_Region_ID"]},"Country_City_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]}}}}},"Worker_Reference":{"type":"object","properties":{"WID":{"type":"string"},"Employee_ID":{"type":"string"}},"description":"Reference to the Worker (employee) to link the candidate to. Provide either WID or Employee_ID."}}},"Override_Source_Reference_WID":{"type":"string","description":"Used to override the automatic source WID."}},"description":"Fields specific to Workday. The remote fields schema follows the documentation at https://community.workday.com/sites/default/files/file-hosting/productionapi/Recruiting/v43.0/Put_Candidate.html. Only defined fields are supported, if you need additional field support please reach out to Kombo support."},"zohorecruit":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Zoho Recruit's `Candidate` object."}},"description":"Fields specific to Zoho Recruit."},"bullhorn":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Bullhorn's `Candidate` object."},"job_submission":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Bullhorn's `JobSubmission` object."}},"description":"Fields specific to Bullhorn."},"smartrecruiters":{"type":"object","properties":{"candidate_with_questions":{"type":"object","additionalProperties":true,"description":"**(⚠️ Deprecated - Use the `candidate` field instead.)** Fields that we will pass through to the SmartRecruiters's `Candidate` object when created with screening question answers. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1"},"candidate_without_questions":{"type":"object","additionalProperties":true,"description":"**(⚠️ Deprecated - Use the `candidate` field instead.)** Fields that we will pass through to the SmartRecruiters's `Candidate` object when created with screening question answers. This API is used: https://developers.smartrecruiters.com/reference/candidatesaddtojob-1"},"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to the SmartRecruiters's `Candidate` object. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1"}},"description":"Fields specific to SmartRecruiters."},"talentadore":{"type":"object","properties":{"applications":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to the Talentadore's when creating applications."}},"description":"Fields specific to Talentadore."},"guidecom":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to GuideCom's `Candidate` object."}},"description":"Fields specific to GuideCom."},"dvinci":{"type":"object","properties":{"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to d.vinci's application object. This API is used: https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html#jobs__id__applyApi_post"},"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to d.vinci's candidate/application payload as top-level fields (e.g., dateOfBirth)."}},"description":"Fields specific to d.vinci."},"hrworks":{"type":"object","properties":{"jobApplication":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to HRWorks's `Job Application` object. This API is used: https://developers.hrworks.de/docs/hrworks-api-v2/53021f035f62d-post-job-applications"}},"description":"Fields specific to GuideCom."},"jobylon":{"type":"object","properties":{"application":{"type":"object","properties":{"message":{"type":"string","description":"The `message` field of Jobylon's create application endpoint's request body."}},"description":"Fields that we will pass through to Jobylon's create application [endpoint](https://developer.jobylon.com/push-api-and-webhooks#-xL0v)'s request body."}},"description":"Fields specific to Jobylon."},"avature":{"type":"object","properties":{"workflow":{"type":"object","properties":{"step":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"The ID of the workflow step to assign to the candidate."}},"required":["id"]}}}},"description":"Fields specific to Avature."},"recruitee":{"type":"object","properties":{"candidate":{"type":"object","properties":{"cover_letter_text":{"type":"string","description":"The cover letter text as a string. This will be visible on the main candidate page. Can be provided together with the `cover_letter` attachment, which will end up in a separate `file` section."}}}},"description":"Fields specific to Recruitee."},"rexx":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Rexx's application form fields."}},"description":"Fields specific to Rexx."},"umantis":{"type":"object","properties":{"person":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Abacus Umantis's \"Create a person\" endpoint's `attributes` when creating a candidate."}},"description":"Fields specific to Abacus Umantis."},"piloga":{"type":"object","properties":{"candidate":{"type":"object","properties":{"street":{"type":"string","description":"The street address of the candidate."}},"description":"Additional candidate fields for P&I Loga that will be mapped to the application form."}},"description":"Fields specific to P&I Loga."},"pinpoint":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Pinpoint's `Candidate` object."}},"description":"Fields specific to Pinpoint."},"covetorest":{"type":"object","properties":{"candidate":{"type":"object","properties":{"mandant":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The mandant field for the candidate in Coveto."}},"description":"Additional candidate fields that will be passed to the Coveto candidate creation."}},"description":"Fields specific to Coveto REST."}},"description":"Additional fields that we will pass through to specific ATS systems."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Additional fields that we will pass through to specific ATS systems."},"screening_question_answers":{"type":"array","items":{"type":"object","properties":{"question_id":{"type":"string","description":"ID of the question returned by the Kombo API. We'll report a warning in the logs if the question can't be found on the job."},"answer":{"anyOf":[{"type":"string","description":"Answer to a `TEXT` question or the option ID of the answer to a `SINGLE_SELECT` question."},{"type":"boolean","description":"Answer to a `BOOLEAN` question."},{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Answer to a `NUMBER` question."},{"type":"array","items":{"type":"string"},"description":"Answer to a `MULTI_SELECT` question. The array elements are the IDs of the selected options."},{"description":"Answer to a `DATE` question as an ISO 8601 date string.","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"}},{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."}},"required":["name"],"description":"Answer to a `FILE` question."}],"description":"Answer to a question. This will be validated based on the question format and throw an error if the answer is invalid. Here is a description of each question type and the required answer format:\n\n`TEXT` - Simply provide a \"string\" answer.\n\n`SINGLE_SELECT` - Provide the ID of the answer as a string.\n\n`MULTI_SELECT` - Provide a string array containing the question IDs of the selected options.\n\n`BOOLEAN` - Either `true` or `false`.\n\n`NUMBER` - A number.\n\n`DATE` - Provide the answer as an ISO 8601 date string.\n\n`FILE` - Please select Option 6 in the dropdown above to see the required format."}},"required":["question_id","answer"]},"description":"Array of answers to screening questions. Currently, not all question types are supported, and unsupported ones will not be submitted.\n\nThe available questions for a job can be retrieved from the get jobs endpoint. The answers will be validated based on the format of the questions. Make sure to follow this schema to avoid errors.","examples":[[{"question_id":"D8yPrjXXvA2XeBksTmrVvKSn","answer":"Yes"}]]}},"required":["candidate"]},"GetAtsUsersParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsUsersParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsUsersParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsUsersParameterIncludeDeleted":{"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."},"GetAtsUsersParameterIgnoreUnsupportedFilters":{"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."},"GetAtsUsersParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsUsersParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsUsersParameterEmails":{"type":"string","description":"Filter by a comma-separated list of emails. We will only return users who have _any_ of the emails. The format of the emails is case-insensitive."},"GetAtsUsersPositiveResponse":{"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."},"first_name":{"type":["string","null"],"description":"First name of the user."},"last_name":{"type":["string","null"],"description":"Last name of the user."},"email":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$","description":"Email of the user. If the email address is invalid, it will be set to null."},"status":{"type":["string","null"],"enum":["ACTIVE","INACTIVE"],"description":"Whether the user is active or inactive. Consider this field when provisioning users from the ATS."},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"system_roles":{"type":"array","items":{"type":"object","properties":{"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."},"remote_label":{"type":["string","null"],"description":"The label of the role."},"scope":{"type":["string","null"],"enum":["SYSTEM","JOB"],"examples":["JOB"],"description":"Whether the role applies globally or is scoped to a specific job."},"unified_type":{"type":["string","null"],"enum":["HIRING_MANAGER","RECRUITER","ADMIN"],"description":"Unified role type if Kombo can map it."}},"required":["remote_id","remote_label","scope","unified_type"],"examples":[{"remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER"},{"remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER"},{"remote_id":"1","remote_label":"Admin","scope":"SYSTEM","unified_type":"ADMIN"}]},"description":"System-wide roles assigned to this user in the ATS.\n\nNote: Use `job_roles` on the `/v1/ats/jobs` endpoint for job-specific roles."}},"required":["id","remote_id","first_name","last_name","status","remote_data","changed_at","remote_deleted_at","system_roles"]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email":"john.doe@kombo.dev","status":"ACTIVE","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"system_roles":[{"remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER"}]}]}]}},"required":["status","data"]},"GetAtsRolesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsRolesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsRolesParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsRolesParameterIncludeDeleted":{"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."},"GetAtsRolesParameterIgnoreUnsupportedFilters":{"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."},"GetAtsRolesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsRolesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsRolesParameterScopes":{"type":"string","description":"Filter by a comma-separated list of `SYSTEM`, `JOB` \n* `SYSTEM`: System-wide roles that apply globally (e.g., an \"Admin\" role). \n* `JOB`: Job-scoped roles that apply to specific jobs (e.g., a \"Hiring Manager\" role). \n \n\nLeave this blank to get results matching all values."},"GetAtsRolesPositiveResponse":{"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."},"remote_label":{"type":["string","null"],"description":"The label of the role."},"scope":{"type":["string","null"],"enum":["SYSTEM","JOB"],"examples":["JOB"],"description":"Whether the role applies globally or is scoped to a specific job."},"unified_type":{"type":["string","null"],"enum":["HIRING_MANAGER","RECRUITER","ADMIN"],"description":"Unified role type if Kombo can map it."},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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","remote_label","scope","unified_type","remote_data","changed_at","remote_deleted_at"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER","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","remote_label":"Hiring Manager","scope":"JOB","unified_type":"HIRING_MANAGER","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}]}]}},"required":["status","data"]},"GetAtsOffersParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsOffersParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsOffersParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsOffersParameterIncludeDeleted":{"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."},"GetAtsOffersParameterIgnoreUnsupportedFilters":{"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."},"GetAtsOffersParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsOffersParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsOffersPositiveResponse":{"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."},"status":{"type":["string","null"],"enum":["ACCEPTED","DECLINED","SENT","APPROVED","DRAFT","ABANDONED"],"description":"The offer’s current status. The usual flow of statuses is as follows:\n`DRAFT` -> `APPROVED` -> `SENT` -> `ACCEPTED` or `DECLINED`.\n\nPlease note that not all systems will expose all statuses. For example, most systems do not include the `APPROVED` status\n\n- `ACCEPTED`: The offer was accepted by the candidate.\n- `DECLINED`: The offer was declined by the candidate.\n- `SENT`: The offer was sent to the candidate.\n- `APPROVED`: The draft was approved.\n- `DRAFT`: The offer is a draft and has not yet been sent to the candidate.\n- `ABANDONED`: The offer has expired or is no longer valid and should not be considered.\n"},"employment_start_date":{"description":"The date when the employment described by the offer starts. 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"}},"application_id":{"type":["string","null"],"description":"The Kombo ID of the application this interview belongs to. The ID can be used to retrieve the application from the `get applications` endpoint."},"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.\n- `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_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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"application":{"type":["object","null"],"properties":{"candidate":{"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":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."}},"required":["id","remote_id","first_name","last_name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}]}]},"job":{"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":"Title of the job."}},"required":["id","remote_id","name"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer"}]}},"required":["candidate","job"]}},"required":["id","remote_id","status","employment_start_date","application_id","custom_fields","integration_fields","changed_at","remote_deleted_at","remote_created_at","remote_updated_at","remote_data","application"]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"76bab8LKuFtqpZ89mofCPMHX","remote_id":"6","status":"ACCEPTED","employment_start_date":"2022-08-07T14:01:29.196Z","application_id":"BAkbueBMBusj9Bg7L1Wps3AR","custom_fields":{},"integration_fields":[],"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_created_at":"2022-08-07T14:01:29.196Z","remote_updated_at":"2022-08-07T14:01:29.196Z","remote_data":null,"application":{"candidate":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}]},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer"}}}]}]}},"required":["status","data"]},"GetAtsRejectionReasonsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsRejectionReasonsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsRejectionReasonsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsRejectionReasonsParameterIncludeDeleted":{"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."},"GetAtsRejectionReasonsParameterIgnoreUnsupportedFilters":{"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."},"GetAtsRejectionReasonsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsRejectionReasonsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsRejectionReasonsPositiveResponse":{"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 title of the rejection reason."},"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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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":"76bab8LKuFtqpZ89mofCPMHX","remote_id":"6","name":"Not a fit","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"76bab8LKuFtqpZ89mofCPMHX","remote_id":"6","name":"Not a fit","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}]}]}},"required":["status","data"]},"GetAtsInterviewsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAtsInterviewsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAtsInterviewsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetAtsInterviewsParameterIncludeDeleted":{"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."},"GetAtsInterviewsParameterIgnoreUnsupportedFilters":{"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."},"GetAtsInterviewsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAtsInterviewsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetAtsInterviewsParameterJobIds":{"type":"string","description":"Filter by a comma-separated list of job IDs. We will only return interviews for applications associated with any of these jobs."},"GetAtsInterviewsPositiveResponse":{"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."},"title":{"type":["string","null"],"description":"The title of the interview."},"starting_at":{"description":"The start time of the interview.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"ending_at":{"description":"The end time of the interview.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"location":{"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":"Location of the interview."},"video_conferencing_url":{"type":["string","null"],"description":"The URL of the video conferencing platform used for the interview."},"application_id":{"type":["string","null"],"description":"The Kombo ID of the application this interview belongs to. The ID can be used to retrieve the application from the `get applications` endpoint."},"stage_id":{"type":["string","null"],"description":"If a system specifies to which stage this interview belongs to, this field will be the Kombo ID of the application stage. The ID can be used to retrieve the stage from the `get application stages` endpoint."},"canceled":{"type":["boolean","null"],"description":"Whether the interview was canceled or not. If we have no information, this field will be `null`."},"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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"users":{"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."},"first_name":{"type":["string","null"],"description":"First name of the user."},"last_name":{"type":["string","null"],"description":"Last name of the user."},"email":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$","description":"Email of the user. If the email address is invalid, it will be set to null."}},"required":["id","remote_id","first_name","last_name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email":"john.doe@kombo.dev"}]}},"application":{"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."},"outcome":{"type":["string","null"],"enum":["PENDING","HIRED","DECLINED"],"description":"Parsed status of the application. If Kombo identifies that the application was accepted and the candidate hired, it will be `HIRED`. If the application was rejected or the candidate declined, it will be `DECLINED`. If the application is still in process, it will be `PENDING`.\nKombo will always try to deliver this information as reliably as possible."},"rejection_reason_name":{"type":["string","null"],"description":"Reason for the rejection of the candidate."},"candidate":{"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":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."}},"required":["id","remote_id","first_name","last_name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}]}]},"job":{"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":"Title of the job."}},"required":["id","remote_id","name"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer"}]}},"required":["id","remote_id","outcome","rejection_reason_name","candidate","job"]}},"required":["id","remote_id","title","starting_at","ending_at","video_conferencing_url","application_id","stage_id","canceled","remote_created_at","remote_updated_at","remote_data","changed_at","remote_deleted_at","users","application"]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","title":"Interview with John Doe","starting_at":"2023-06-26T14:30:00.000Z","ending_at":"2023-06-26T15:30:00.000Z","location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"video_conferencing_url":"https://meet.example.com/interview-abc123","application_id":"H77fDF8uvEzGNPRubiz5DvQ7","stage_id":"H5daSm8e85Dmvmne3wLeCPhX","canceled":false,"remote_created_at":"2022-08-07T14:01:29.196Z","remote_updated_at":"2022-08-07T14:01:29.196Z","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"users":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email":"john.doe@kombo.dev"}],"application":{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"HIRED","rejection_reason_name":null,"candidate":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}]},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","remote_id":"32","name":"Backend Engineer"}}}]}]}},"required":["status","data"]},"GetAtsActionsAtsCreateCandidatePositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"attachment_restrictions":{"type":["object","null"],"properties":{"total_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum total size of all attachments. If null, we don' have information about the total size of all attachments. Make sure to consider the total request size limits of Kombo."},"types":{"type":"object","properties":{"CV":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"min_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The minimum amount of attachments. If null, we don' have information about the minimum amount."},"max_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum amount of attachments. If null, we don' have information about the maximum amount."},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","min_amount","max_amount","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for CV."},"COVER_LETTER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"min_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The minimum amount of attachments. If null, we don' have information about the minimum amount."},"max_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum amount of attachments. If null, we don' have information about the maximum amount."},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","min_amount","max_amount","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for COVER_LETTER."},"OTHER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"min_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The minimum amount of attachments. If null, we don' have information about the minimum amount."},"max_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum amount of attachments. If null, we don' have information about the maximum amount."},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","min_amount","max_amount","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for OTHER."}},"required":["CV","COVER_LETTER","OTHER"],"description":"Specific attachment type restrictions for each attachment type. If null, we don' have information about the attachment type restrictions."}},"required":["total_size_bytes","types"],"description":"Restrictions with attachment types that we know about. If this is null, we don't have information about restrictions on attachments."}},"examples":[{"attachment_restrictions":{"total_size_bytes":20000000,"types":{"CV":{"is_supported":true,"min_amount":1,"max_amount":1,"max_file_size_bytes":10000000,"accepted_mime_types":["application/pdf","application/msword"]},"COVER_LETTER":{"is_supported":true,"min_amount":0,"max_amount":null,"max_file_size_bytes":null,"accepted_mime_types":null},"OTHER":{"is_supported":false}}}}]}},"required":["status","data"]},"GetAtsActionsAtsCreateApplicationPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"attachment_restrictions":{"type":["object","null"],"properties":{"total_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum total size of all attachments. If null, we don' have information about the total size of all attachments. Make sure to consider the total request size limits of Kombo."},"types":{"type":"object","properties":{"CV":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"min_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The minimum amount of attachments. If null, we don' have information about the minimum amount."},"max_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum amount of attachments. If null, we don' have information about the maximum amount."},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","min_amount","max_amount","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for CV."},"COVER_LETTER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"min_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The minimum amount of attachments. If null, we don' have information about the minimum amount."},"max_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum amount of attachments. If null, we don' have information about the maximum amount."},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","min_amount","max_amount","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for COVER_LETTER."},"OTHER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"min_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The minimum amount of attachments. If null, we don' have information about the minimum amount."},"max_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum amount of attachments. If null, we don' have information about the maximum amount."},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","min_amount","max_amount","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for OTHER."}},"required":["CV","COVER_LETTER","OTHER"],"description":"Specific attachment type restrictions for each attachment type. If null, we don' have information about the attachment type restrictions."}},"required":["total_size_bytes","types"],"description":"Restrictions with attachment types that we know about. If this is null, we don't have information about restrictions on attachments."}},"examples":[{"attachment_restrictions":{"total_size_bytes":20000000,"types":{"CV":{"is_supported":true,"min_amount":1,"max_amount":1,"max_file_size_bytes":10000000,"accepted_mime_types":["application/pdf","application/msword"]},"COVER_LETTER":{"is_supported":true,"min_amount":0,"max_amount":null,"max_file_size_bytes":null,"accepted_mime_types":null},"OTHER":{"is_supported":false}}}}]}},"required":["status","data"]},"GetAtsActionsAtsAddApplicationAttachmentPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"attachment_restrictions":{"type":["object","null"],"properties":{"types":{"type":"object","properties":{"CV":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for CV."},"COVER_LETTER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for COVER_LETTER."},"OTHER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for OTHER."}},"required":["CV","COVER_LETTER","OTHER"]}},"required":["types"],"description":"Restrictions with attachment types that we know about. If this is null, we don't have information which types are supported."}},"examples":[{"attachment_restrictions":{"types":{"CV":{"is_supported":false},"COVER_LETTER":{"is_supported":false},"OTHER":{"is_supported":true,"max_file_size_bytes":10485760,"accepted_mime_types":["application/pdf","application/msword"]}}}}]}},"required":["status","data"]},"GetAtsActionsAtsAddCandidateAttachmentPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"attachment_restrictions":{"type":["object","null"],"properties":{"types":{"type":"object","properties":{"CV":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for CV."},"COVER_LETTER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for COVER_LETTER."},"OTHER":{"anyOf":[{"type":"object","properties":{"is_supported":{"type":"boolean","const":true},"max_file_size_bytes":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"The maximum file size in bytes. If null, we don't have information about the maximum file size."},"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"},"description":"The accepted mime types. If null, we don't have information about the accepted mime types."}},"required":["is_supported","max_file_size_bytes","accepted_mime_types"]},{"type":"object","properties":{"is_supported":{"type":"boolean","const":false}},"required":["is_supported"]}],"description":"Specific attachment type restrictions for OTHER."}},"required":["CV","COVER_LETTER","OTHER"]}},"required":["types"],"description":"Restrictions with attachment types that we know about. If this is null, we don't have information which types are supported."}},"examples":[{"attachment_restrictions":{"types":{"CV":{"is_supported":false},"COVER_LETTER":{"is_supported":false},"OTHER":{"is_supported":true,"max_file_size_bytes":10485760,"accepted_mime_types":["application/pdf","application/msword"]}}}}]}},"required":["status","data"]},"PostAtsImportTrackedApplicationPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"id":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[1-9A-HJ-NP-Za-km-z]+$"},"tracked_at":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"imported_id":{"type":"object","properties":{"erecruiter":{"discriminator":{"propertyName":"id_type"},"anyOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_and_job_remote_ids","description":"Uses the `Api/Applications/ByJob/{jobId}` endpoint to retrieve the relevant application based on the job ID."},"application_remote_id":{"type":"string"},"job_remote_id":{"type":"string"}},"required":["id_type","application_remote_id","job_remote_id"]},{"type":"object","properties":{"id_type":{"type":"string","const":"application_and_candidate_remote_ids","description":"Uses the `Api/Applications/{applicantId}` endpoint to retrieve the relevant application based on the candidate ID."},"candidate_remote_id":{"type":"string"},"application_remote_id":{"type":"string"}},"required":["id_type","candidate_remote_id","application_remote_id"]}]},"successfactors":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_remote_id","description":"Uses the `/JobApplication` ODATA endpoint to retrieve the relevant application based on the application ID."},"application_remote_id":{"type":"string"}},"required":["id_type","application_remote_id"]}]},"recruitee":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"placement_id","description":"Uses the `/candidates` endpoint to retrieve all candidates, to find the relevant application based on the placement ID."},"placement_id":{"type":"string"}},"required":["id_type","placement_id"]}]},"greenhouse":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_id","description":"Uses the `/applications/{id}` endpoint to retrieve the application."},"application_id":{"type":"string"}},"required":["id_type","application_id"]}]},"onlyfy":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_id","description":"Uses the `/v1/application/{id}` endpoint to retrieve the application."},"application_id":{"type":"string"}},"required":["id_type","application_id"]}]},"smartrecruiters":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"candidate_and_job_remote_ids","description":"Uses the `/candidates/{candidateId}/jobs/{jobId}` endpoint to retrieve the application."},"candidate_remote_id":{"type":"string"},"job_remote_id":{"type":"string"}},"required":["id_type","candidate_remote_id","job_remote_id"]}]}}}},"required":["id","tracked_at","imported_id"],"examples":[{"id":"5wdtQtJei2oVhJKya2V1KZLM","tracked_at":"2025-02-11T15:37:37.000Z","imported_id":{"successfactors":{"id_type":"application_remote_id","application_remote_id":"1224042"}}}]},"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"]},"PostAtsImportTrackedApplicationRequestBody":{"type":"object","properties":{"erecruiter":{"discriminator":{"propertyName":"id_type"},"anyOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_and_job_remote_ids","description":"Uses the `Api/Applications/ByJob/{jobId}` endpoint to retrieve the relevant application based on the job ID."},"application_remote_id":{"type":"string"},"job_remote_id":{"type":"string"}},"required":["id_type","application_remote_id","job_remote_id"]},{"type":"object","properties":{"id_type":{"type":"string","const":"application_and_candidate_remote_ids","description":"Uses the `Api/Applications/{applicantId}` endpoint to retrieve the relevant application based on the candidate ID."},"candidate_remote_id":{"type":"string"},"application_remote_id":{"type":"string"}},"required":["id_type","candidate_remote_id","application_remote_id"]}]},"successfactors":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_remote_id","description":"Uses the `/JobApplication` ODATA endpoint to retrieve the relevant application based on the application ID."},"application_remote_id":{"type":"string"}},"required":["id_type","application_remote_id"]}]},"recruitee":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"placement_id","description":"Uses the `/candidates` endpoint to retrieve all candidates, to find the relevant application based on the placement ID."},"placement_id":{"type":"string"}},"required":["id_type","placement_id"]}]},"greenhouse":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_id","description":"Uses the `/applications/{id}` endpoint to retrieve the application."},"application_id":{"type":"string"}},"required":["id_type","application_id"]}]},"onlyfy":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"application_id","description":"Uses the `/v1/application/{id}` endpoint to retrieve the application."},"application_id":{"type":"string"}},"required":["id_type","application_id"]}]},"smartrecruiters":{"discriminator":{"propertyName":"id_type"},"oneOf":[{"type":"object","properties":{"id_type":{"type":"string","const":"candidate_and_job_remote_ids","description":"Uses the `/candidates/{candidateId}/jobs/{jobId}` endpoint to retrieve the application."},"candidate_remote_id":{"type":"string"},"job_remote_id":{"type":"string"}},"required":["id_type","candidate_remote_id","job_remote_id"]}]},"tracked_at":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","type":["string","null"],"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"}}},"required":["tracked_at"]},"PostAtsCustomAvionteSyncedJobsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object"}},"required":["status","data"]},"PostAtsCustomAvionteSyncedJobsRequestBody":{"type":"object","properties":{"job_remote_id":{"type":"string","pattern":"^\\d+$"}},"required":["job_remote_id"]},"DeleteAtsCustomAvionteSyncedJobsJobRemoteIdParameterJobRemoteId":{"type":"string"},"DeleteAtsCustomAvionteSyncedJobsJobRemoteIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object"}},"required":["status","data"]},"DeleteAtsCustomAvionteSyncedJobsJobRemoteIdRequestBody":{"type":"object","properties":{}},"GetAssessmentPackagesPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"packages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"updated_at":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","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":["BEHAVIORAL","VIDEO_INTERVIEW","SKILLS_TEST","BACKGROUND_CHECK","REFERENCE_CHECK"]}},"required":["id","name","description","updated_at","type"]}}},"required":["packages"],"examples":[{"packages":[{"id":"1001","name":"TypeScript","description":"TypeScript coding skills assessments","updated_at":"2023-06-29T18:47:40.890Z","type":"SKILLS_TEST"}]}]}},"required":["status","data"]},"PutAssessmentPackagesPositiveResponse":{"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"]},"PutAssessmentPackagesRequestBody":{"type":"object","properties":{"packages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"A unique identifier for the assessment package."},"type":{"type":"string","enum":["BEHAVIORAL","VIDEO_INTERVIEW","SKILLS_TEST","BACKGROUND_CHECK","REFERENCE_CHECK"]},"name":{"type":"string","description":"The name of the assessment package."},"description":{"type":"string","description":"Description about the package. Some ATSs will display this in their UI."}},"required":["id","type","name","description"]}}},"required":["packages"]},"GetAssessmentOrdersOpenParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAssessmentOrdersOpenParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAssessmentOrdersOpenPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"next":{"type":["string","null"]},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the assessment order.","examples":["B5KQKhAgTv6ZwzrfAbqbhipd"]},"package_id":{"type":"string","description":"The identifier of the assessment package.","examples":["typescript_test"]},"candidate":{"type":"object","properties":{"remote_id":{"type":["string","null"],"description":"The candidate's identifier in the integrated system.","examples":["12345"]},"email":{"type":"string","description":"The candidate's email address.","examples":["john.doe@gmail.com"],"format":"email"},"first_name":{"type":["string","null"],"description":"The candidate's first name.","examples":["John"]},"last_name":{"type":["string","null"],"description":"The candidate's last name.","examples":["Doe"]},"phone":{"type":["string","null"],"description":"The candidate's phone number.","examples":["+1 123 456 7890"]}},"required":["email"],"description":"Information about the candidate taking the assessment."},"application":{"type":"object","properties":{"remote_id":{"type":["string","null"],"description":"The application's identifier in the integrated system.","examples":["54321"]}},"description":"Information about the job application."},"job":{"type":"object","properties":{"remote_id":{"type":["string","null"],"description":"The job's identifier in the integrated system.","examples":["67890"]},"name":{"type":["string","null"],"description":"The job title.","examples":["Engineering Manager"]},"location":{"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 job location information."},"hiring_team":{"type":"array","items":{"type":"object","properties":{"remote_id":{"type":"string","description":"The team member's identifier in the integrated system.","examples":["78901"]},"email":{"type":["string","null"],"description":"The team member's email address.","examples":["jane.doe@gmail.com"]},"first_name":{"type":["string","null"],"description":"The team member's first name.","examples":["Jane"]},"last_name":{"type":["string","null"],"description":"The team member's last name.","examples":["Doe"]},"hiring_team_roles":{"type":"array","items":{"type":"string","enum":["RECRUITER","HIRING_MANAGER"],"examples":["RECRUITER"]},"description":"Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.","examples":[["RECRUITER"]]}},"required":["remote_id","email","first_name","last_name","hiring_team_roles"],"description":"A member of the hiring team."},"description":"The hiring team allows you to provision users into your system who can access the job and its applications."}},"required":["hiring_team"],"description":"Information about the job posting."}},"required":["id","package_id","candidate","application","job"],"examples":[{"id":"B5KQKhAgTv6ZwzrfAbqbhipd","package_id":"typescript_test","candidate":{"remote_id":"12345","email":"john.doe@gmail.com","first_name":"John","last_name":"Doe","phone":"+1 123 456 7890"},"application":{"remote_id":"54321"},"job":{"remote_id":"67890","name":"Engineering Manager","location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"hiring_team":[{"remote_id":"78901","email":"jane.doe@gmail.com","first_name":"Jane","last_name":"Doe","hiring_team_roles":["RECRUITER"]}]}}]}}},"required":["next","results"]}},"required":["status","data"]},"PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId":{"type":"string"},"PutAssessmentOrdersAssessmentOrderIdResultPositiveResponse":{"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"]},"PutAssessmentOrdersAssessmentOrderIdResultRequestBody":{"type":"object","properties":{"status":{"type":"string","enum":["COMPLETED","CANCELLED","OPEN"],"description":"Status of the assessment.\n\n**Please note the `status` can only be updated to a different value if its current value is `OPEN`.**"},"result_url":{"type":"string","format":"uri"},"completed_at":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ\n\n**Please make sure this value is provided when the `status` is of the type `COMPLETED` or `CANCELLED`.**","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"}},"score":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"max_score":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"attributes":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"TEXT"},"label":{"type":"string"},"value":{"type":"string"}},"required":["type","label","value"]},{"type":"object","properties":{"type":{"type":"string","const":"SUB_RESULT"},"id":{"type":"string"},"label":{"type":"string"},"score":{"type":"object","properties":{"value":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"max":{"type":"number","format":"double","minimum":1}},"required":["value","max"]},"status":{"type":"string","enum":["COMPLETED","CANCELLED"]}},"required":["type","id","label","score","status"]}]},"default":[],"description":"An array of additional attributes that you would like to submit as a part of the assessment result.\n\n- If an ATS only supports writing text attributes, we will transform non `TEXT` attributes into formatted plain text values."},"attachments":{"type":"array","items":{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."}},"required":["name"]},"maxItems":5,"default":[],"description":"An array of attachments containing the assessment result."},"remote_fields":{"type":"object","properties":{"smartrecruiters":{"type":"object","properties":{"scoreLabel":{"type":"string","description":"Value that we will pass through to SmartRecruiters' `scoreLabel` field."}}},"recruitee":{"type":"object","properties":{"subtitle":{"type":"string","description":"Value that we will pass through to Recruitee's `subtitle` field on the assessment report."}}}},"description":"Additional fields that we will pass through to specific ATS systems."}},"required":["status","result_url"]},"GetLmsUsersParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetLmsUsersParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetLmsUsersParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetLmsUsersParameterIncludeDeleted":{"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."},"GetLmsUsersParameterIgnoreUnsupportedFilters":{"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."},"GetLmsUsersParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetLmsUsersParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetLmsUsersParameterWorkEmails":{"type":"string","description":"Filter by a comma-separated list of work emails. We will only return users who have _any_ of the work emails. The format of the emails is case-insensitive."},"GetLmsUsersPositiveResponse":{"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."},"first_name":{"type":["string","null"],"description":"The user's first name."},"last_name":{"type":["string","null"],"description":"The user's last name."},"work_email":{"type":["string","null"],"description":"The user's work email address."},"status":{"type":["string","null"],"enum":["ACTIVE","INACTIVE"],"description":"Current status of the user in the LMS."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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","first_name","last_name","work_email","status","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[]}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[]}]}]}},"required":["status","data"]},"GetLmsCourseProgressionsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetLmsCourseProgressionsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetLmsCourseProgressionsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetLmsCourseProgressionsParameterIncludeDeleted":{"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."},"GetLmsCourseProgressionsParameterIgnoreUnsupportedFilters":{"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."},"GetLmsCourseProgressionsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetLmsCourseProgressionsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetLmsCourseProgressionsParameterUserIds":{"type":"string","description":"Filter by a comma-separated list of user IDs. We will only return progressions that are related to _any_ of the users."},"GetLmsCourseProgressionsPositiveResponse":{"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."},"user_id":{"type":"string","description":"The Kombo ID of the user this progression relates to. The ID can be used to retrieve the user from the `get users` endpoint."},"course_revision_id":{"type":"string","description":"The Kombo ID of the revision this progression relates to. The ID can be used to retrieve the revision from the `get courses` endpoint."},"status":{"type":["string","null"],"enum":["ENROLLED","IN_PROGRESS","COMPLETED","DROPPED"],"description":"Current status of the learner in this course revision."},"enrolled_at":{"description":"Date when the user enrolled in the course revision.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"completed_at":{"description":"Date when the user completed the course revision.","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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"user":{"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 user's first name."},"last_name":{"type":["string","null"],"description":"The user's last name."},"work_email":{"type":["string","null"],"description":"The user's work email address."}},"required":["id","remote_id","first_name","last_name","work_email"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"}]},"course_revision":{"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."},"title":{"type":["string","null"],"description":"The title of the course revision."},"course":{"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."}},"required":["id","remote_id"]}},"required":["id","remote_id","title","course"]}},"required":["id","remote_id","user_id","course_revision_id","status","enrolled_at","completed_at","changed_at","remote_deleted_at","remote_data","user","course_revision"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}}]}]}},"required":["status","data"]},"PostLmsCourseProgressionsPositiveResponse":{"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."},"user_id":{"type":"string","description":"The Kombo ID of the user this progression relates to. The ID can be used to retrieve the user from the `get users` endpoint."},"course_revision_id":{"type":"string","description":"The Kombo ID of the revision this progression relates to. The ID can be used to retrieve the revision from the `get courses` endpoint."},"status":{"type":["string","null"],"enum":["ENROLLED","IN_PROGRESS","COMPLETED","DROPPED"],"description":"Current status of the learner in this course revision."},"enrolled_at":{"description":"Date when the user enrolled in the course revision.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"completed_at":{"description":"Date when the user completed the course revision.","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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"user":{"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 user's first name."},"last_name":{"type":["string","null"],"description":"The user's last name."},"work_email":{"type":["string","null"],"description":"The user's work email address."}},"required":["id","remote_id","first_name","last_name","work_email"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"}]},"course_revision":{"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."},"title":{"type":["string","null"],"description":"The title of the course revision."},"course":{"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."}},"required":["id","remote_id"]}},"required":["id","remote_id","title","course"]}},"required":["id","remote_id","user_id","course_revision_id","status","enrolled_at","completed_at","changed_at","remote_deleted_at","remote_data","user","course_revision"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}}]},"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"]},"PostLmsCourseProgressionsRequestBody":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the user in Kombo or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)"},"course_revision_id":{"type":"string","description":"The ID of the revision in Kombo or its ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)"}},"required":["user_id","course_revision_id"]},"PostLmsCourseProgressionsCourseProgressionIdCompleteParameterCourseProgressionId":{"type":"string","description":"The ID of the course progression in Kombo or its ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)"},"PostLmsCourseProgressionsCourseProgressionIdCompletePositiveResponse":{"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."},"user_id":{"type":"string","description":"The Kombo ID of the user this progression relates to. The ID can be used to retrieve the user from the `get users` endpoint."},"course_revision_id":{"type":"string","description":"The Kombo ID of the revision this progression relates to. The ID can be used to retrieve the revision from the `get courses` endpoint."},"status":{"type":["string","null"],"enum":["ENROLLED","IN_PROGRESS","COMPLETED","DROPPED"],"description":"Current status of the learner in this course revision."},"enrolled_at":{"description":"Date when the user enrolled in the course revision.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"completed_at":{"description":"Date when the user completed the course revision.","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.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"user":{"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 user's first name."},"last_name":{"type":["string","null"],"description":"The user's last name."},"work_email":{"type":["string","null"],"description":"The user's work email address."}},"required":["id","remote_id","first_name","last_name","work_email"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"}]},"course_revision":{"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."},"title":{"type":["string","null"],"description":"The title of the course revision."},"course":{"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."}},"required":["id","remote_id"]}},"required":["id","remote_id","title","course"]}},"required":["id","remote_id","user_id","course_revision_id","status","enrolled_at","completed_at","changed_at","remote_deleted_at","remote_data","user","course_revision"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"progress-12345","user_id":"7xPdr68N8kG9EzLwjsN9xyz","course_revision_id":"3KMdr68N8kG9EzLwjsN9aoz","status":"COMPLETED","enrolled_at":"2022-08-07T14:01:29.196Z","completed_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"user":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"Sarah","last_name":"Johnson","work_email":"sarah.johnson@example.com"},"course_revision":{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","title":"Building LMS integrations with Kombo","course":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32"}}}]},"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"]},"PostLmsCourseProgressionsCourseProgressionIdCompleteRequestBody":{"type":"object","properties":{"completed_at":{"description":"Date when the user completed the course revision. Defaults to the current date if not provided.","type":["string","null"],"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"}}}},"GetLmsCoursesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetLmsCoursesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetLmsCoursesParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetLmsCoursesParameterIncludeDeleted":{"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."},"GetLmsCoursesParameterIgnoreUnsupportedFilters":{"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."},"GetLmsCoursesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetLmsCoursesParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetLmsCoursesPositiveResponse":{"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."},"provider_id":{"type":["string","null"],"description":"The Kombo ID of the course provider of this course, if applicable."},"origin_id":{"type":["string","null"],"description":"A stable identifier you provided when creating this course. Can be used to identify and update the course in subsequent requests."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"}]]},"provider":{"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 provider."}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"provider-12345","name":"Kombo Academy"}]},"revisions":{"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."},"course_id":{"type":["string","null"],"description":"The Kombo ID of the course this revision belongs to. The ID can be used to retrieve the course from the `get courses` endpoint."},"title":{"type":["string","null"],"description":"The title of the course revision."},"description":{"type":["string","null"],"description":"A description of the course revision."},"status":{"type":["string","null"],"enum":["ACTIVE","INACTIVE"],"description":"The status of this revision (ACTIVE or INACTIVE)."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"}]]},"skill_assignments":{"type":"array","items":{"type":"object","properties":{"skill":{"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 name of the skill."}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"skill-12345","name":"LMS Integration"}]}},"required":["skill"]}}},"required":["id","remote_id","course_id","title","description","status","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields","skill_assignments"],"examples":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}}},"required":["id","remote_id","provider_id","origin_id","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields","provider","revisions"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}]}]}},"required":["status","data"]},"PostLmsCoursesPositiveResponse":{"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."},"provider_id":{"type":["string","null"],"description":"The Kombo ID of the course provider of this course, if applicable."},"origin_id":{"type":["string","null"],"description":"A stable identifier you provided when creating this course. Can be used to identify and update the course in subsequent requests."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"}]]},"provider":{"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 provider."}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"provider-12345","name":"Kombo Academy"}]},"revisions":{"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."},"course_id":{"type":["string","null"],"description":"The Kombo ID of the course this revision belongs to. The ID can be used to retrieve the course from the `get courses` endpoint."},"title":{"type":["string","null"],"description":"The title of the course revision."},"description":{"type":["string","null"],"description":"A description of the course revision."},"status":{"type":["string","null"],"enum":["ACTIVE","INACTIVE"],"description":"The status of this revision (ACTIVE or INACTIVE)."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"}]]},"skill_assignments":{"type":"array","items":{"type":"object","properties":{"skill":{"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 name of the skill."}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"skill-12345","name":"LMS Integration"}]}},"required":["skill"]}}},"required":["id","remote_id","course_id","title","description","status","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields","skill_assignments"],"examples":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}}},"required":["id","remote_id","provider_id","origin_id","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields","provider","revisions"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}]},"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"]},"PostLmsCoursesRequestBody":{"type":"object","properties":{"course":{"discriminator":{"propertyName":"type"},"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"EXTERNAL","description":"`EXTERNAL` indicates that the content is not sent to the LMS, but the `course_url` links to the content in your system."},"title":{"type":"string","description":"The title of the course revision."},"description":{"type":["string","null"],"description":"A description of the course revision."},"course_url":{"type":"string","description":"URL to the course page. For content providers, this should be a deeplink into your product that allows users to access the course directly."},"thumbnail_url":{"type":["string","null"],"description":"URL to the thumbnail image for the course."},"duration":{"type":["integer","null"],"format":"int64","exclusiveMinimum":0,"description":"The duration of the course in minutes."},"languages":{"type":["array","null"],"items":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Z]{2})?$","description":"IETF language tag (BCP 47) in the format \"ll-CC\" (e.g., \"en-US\", \"de-DE\") or \"ll\" (e.g., \"en\", \"de\")."},"description":"A array containing the supported languages for the course content. If only one language is accepted by remote tool we default to the first one. "}},"required":["type","title","course_url"]}]}},"required":["course"]},"PostLmsCoursesBulkPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"task_id":{"type":"string","description":"The ID of the created task. Poll this to get the status and results."}},"required":["task_id"]},"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"]},"PostLmsCoursesBulkRequestBody":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"origin_id":{"type":"string","description":"A unique identifier for this item in the batch, used to correlate results and as a stable identifier for matching existing courses."},"course":{"discriminator":{"propertyName":"type"},"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"EXTERNAL","description":"`EXTERNAL` indicates that the content is not sent to the LMS, but the `course_url` links to the content in your system."},"title":{"type":"string","description":"The title of the course revision."},"description":{"type":["string","null"],"description":"A description of the course revision."},"course_url":{"type":"string","description":"URL to the course page. For content providers, this should be a deeplink into your product that allows users to access the course directly."},"thumbnail_url":{"type":["string","null"],"description":"URL to the thumbnail image for the course."},"duration":{"type":["integer","null"],"format":"int64","exclusiveMinimum":0,"description":"The duration of the course in minutes."},"languages":{"type":["array","null"],"items":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Z]{2})?$","description":"IETF language tag (BCP 47) in the format \"ll-CC\" (e.g., \"en-US\", \"de-DE\") or \"ll\" (e.g., \"en\", \"de\")."},"description":"A array containing the supported languages for the course content. If only one language is accepted by remote tool we default to the first one. "}},"required":["type","title","course_url"]}]}},"required":["origin_id","course"]},"description":"Array of courses to create or update."}},"required":["items"]},"GetLmsCoursesBulkTaskIdParameterTaskId":{"type":"string"},"GetLmsCoursesBulkTaskIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"discriminator":{"propertyName":"status"},"anyOf":[{"type":"object","properties":{"task_id":{"type":"string"},"created_at":{"type":"string","description":"An ISO 8601 timestamp of when the task was created."},"status":{"type":"string","const":"PENDING","description":"Indicates the task is still being processed."},"completed_at":{"type":"null","description":"Always `null` while the task is pending."}},"required":["task_id","created_at","status","completed_at"]},{"type":"object","properties":{"task_id":{"type":"string"},"created_at":{"type":"string","description":"An ISO 8601 timestamp of when the task was created."},"status":{"type":"string","const":"COMPLETED","description":"Indicates the task has finished successfully."},"data":{"type":"array","items":{"discriminator":{"propertyName":"status"},"anyOf":[{"type":"object","properties":{"origin_id":{"type":"string","description":"A unique identifier for this item in the batch, used to correlate results."},"status":{"type":"string","const":"SUCCEEDED"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The Kombo ID of the course."}},"required":["id"]}},"required":["origin_id","status","data"]},{"type":"object","properties":{"origin_id":{"type":"string","description":"A unique identifier for this item in the batch, used to correlate results."},"status":{"type":"string","const":"FAILED"},"error":{"type":"object","properties":{"code":{"type":["string","null"],"enum":["PLATFORM.RATE_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","ATS.JOB_CLOSED","ATS.APPLICATION_ALREADY_EXISTS","LMS.COURSE_UPDATE_NOT_SUPPORTED","AI_APPLY.JOB_FEED_IMPORT_ALREADY_RUNNING","AI_APPLY.JOB_FEED_IMPORT_TIMED_OUT"]},"title":{"type":["string","null"]},"message":{"type":"string"},"log_url":{"type":["string","null"]}},"required":["code","title","message","log_url"]}},"required":["origin_id","status","error"]}]},"description":"The results of the completed task, containing one entry per item in the original request."},"completed_at":{"description":"An ISO 8601 timestamp of when the task was completed.","type":"string","format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}}},"required":["task_id","created_at","status","data","completed_at"]},{"type":"object","properties":{"task_id":{"type":"string"},"created_at":{"type":"string","description":"An ISO 8601 timestamp of when the task was created."},"status":{"type":"string","const":"FAILED","description":"Indicates the task failed before it could process all items."},"error":{"type":"object","properties":{"code":{"type":["string","null"],"enum":["PLATFORM.RATE_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","ATS.JOB_CLOSED","ATS.APPLICATION_ALREADY_EXISTS","LMS.COURSE_UPDATE_NOT_SUPPORTED","AI_APPLY.JOB_FEED_IMPORT_ALREADY_RUNNING","AI_APPLY.JOB_FEED_IMPORT_TIMED_OUT"]},"title":{"type":["string","null"]},"message":{"type":"string"},"log_url":{"type":["string","null"]}},"required":["code","title","message","log_url"],"description":"Details about why the task failed."},"completed_at":{"description":"An ISO 8601 timestamp of when the task failed.","type":"string","format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}}},"required":["task_id","created_at","status","error","completed_at"]}]}},"required":["status","data"]},"PostLmsCoursesCourseIdDeactivateParameterCourseId":{"type":"string","description":"The ID of the course in Kombo or its ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)"},"PostLmsCoursesCourseIdDeactivatePositiveResponse":{"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."},"provider_id":{"type":["string","null"],"description":"The Kombo ID of the course provider of this course, if applicable."},"origin_id":{"type":["string","null"],"description":"A stable identifier you provided when creating this course. Can be used to identify and update the course in subsequent requests."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"}]]},"provider":{"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 provider."}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"provider-12345","name":"Kombo Academy"}]},"revisions":{"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."},"course_id":{"type":["string","null"],"description":"The Kombo ID of the course this revision belongs to. The ID can be used to retrieve the course from the `get courses` endpoint."},"title":{"type":["string","null"],"description":"The title of the course revision."},"description":{"type":["string","null"],"description":"A description of the course revision."},"status":{"type":["string","null"],"enum":["ACTIVE","INACTIVE"],"description":"The status of this revision (ACTIVE or INACTIVE)."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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"}]]},"skill_assignments":{"type":"array","items":{"type":"object","properties":{"skill":{"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 name of the skill."}},"required":["id","remote_id","name"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"skill-12345","name":"LMS Integration"}]}},"required":["skill"]}}},"required":["id","remote_id","course_id","title","description","status","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields","skill_assignments"],"examples":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}}},"required":["id","remote_id","provider_id","origin_id","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields","provider","revisions"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","provider_id":"7xPdr68N8kG9EzLwjsN9xyz","origin_id":"course-123","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"provider":{"id":"7xPdr68N8kG9EzLwjsN9xyz","remote_id":"provider-12345","name":"Kombo Academy"},"revisions":[{"id":"3KMdr68N8kG9EzLwjsN9aoz","remote_id":"revision-12345","course_id":"26vafvWSRmbhNcxJYqjCzuJg","title":"Building LMS integrations with Kombo","description":"Learn how to build and integrate Learning Management System (LMS) integrations with Kombo. This course covers the unified LMS API, course management, user enrollment, progress tracking, and best practices for building robust LMS connectors.","status":"ACTIVE","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[],"skill_assignments":[{"skill":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"skill-123","name":"LMS Integration"}}]}]}]},"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"]},"PostLmsCoursesCourseIdDeactivateRequestBody":{"type":"object","properties":{}},"GetLmsSkillsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetLmsSkillsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetLmsSkillsParameterUpdatedAfter":{"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.\n\nIf you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.\n\nFor 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).","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"}},"GetLmsSkillsParameterIncludeDeleted":{"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."},"GetLmsSkillsParameterIgnoreUnsupportedFilters":{"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."},"GetLmsSkillsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetLmsSkillsParameterRemoteIds":{"type":"string","description":"Filter by a comma-separated list of remote IDs."},"GetLmsSkillsPositiveResponse":{"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 name of the skill."},"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_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"}},"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_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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.\n- `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","name","remote_created_at","remote_deleted_at","changed_at","remote_data","custom_fields","integration_fields"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"skill-12345","name":"LMS Integration","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[]}]}}},"required":["next","results"],"examples":[{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"skill-12345","name":"LMS Integration","remote_created_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_data":null,"custom_fields":null,"integration_fields":[]}]}]}},"required":["status","data"]},"PostAiApplyCareerSitesPositiveResponse":{"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."},"label":{"type":"string","description":"The label of the career site"}},"required":["id","label"],"examples":[{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Acme Inc. California"}]}},"required":["status","data"]},"PostAiApplyCareerSitesRequestBody":{"type":"object","properties":{"label":{"type":"string","description":"The label of the career site"}},"required":["label"]},"GetAiApplyCareerSitesParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAiApplyCareerSitesParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAiApplyCareerSitesParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAiApplyCareerSitesPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"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."},"label":{"type":"string","description":"The label of the career site"}},"required":["id","label"]}},"next":{"type":["string","null"]}},"required":["results","next"],"examples":[{"results":[{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Acme Inc. California"}],"next":null}]}},"required":["status","data"]},"GetAiApplyPostingsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAiApplyPostingsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAiApplyPostingsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAiApplyPostingsParameterCareerSiteIds":{"type":"string","description":"Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`."},"GetAiApplyPostingsParameterJobCodes":{"type":"string","description":"Filter by a comma-separated list of job codes such as `ACME_13,ACME_14`."},"GetAiApplyPostingsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"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."},"career_site":{"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."},"label":{"type":"string"}},"required":["id","label"]},"url":{"type":"string"},"job_code":{"type":["string","null"]},"created_at":{"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"}},"updated_at":{"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"}},"archived_at":{"description":"The date and time the job posting was archived. You can only send applications if the job posting is not archived.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"archived_reason":{"type":["string","null"],"enum":["JOB_POSTING_TAKEN_OFFLINE","MANUAL_ARCHIVE","REMOVED_FROM_JOB_FEED"]},"availability":{"type":"string","enum":["APPLYABLE","PENDING","ARCHIVED","UNAVAILABLE"],"description":"The status of the job posting. You can only send applications if the job posting is \"APPLYABLE\"."}},"required":["id","career_site","url","job_code","created_at","updated_at","archived_at","archived_reason","availability"]}},"next":{"type":["string","null"]}},"required":["results","next"],"examples":[{"results":[{"id":"9QGNv3B98kL3hyELE1qsZ86s","career_site":{"id":"Chc4dua5asAQ48KUERDVF1bs","label":"Acme"},"url":"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102","job_code":"ACME_13","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z","archived_at":null,"archived_reason":null,"availability":"PENDING"}],"next":null}]}},"required":["status","data"]},"PostAiApplyPostingsPositiveResponse":{"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."},"career_site":{"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."},"label":{"type":"string"}},"required":["id","label"]},"url":{"type":"string"},"job_code":{"type":["string","null"]},"created_at":{"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"}},"updated_at":{"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"}},"archived_at":{"description":"The date and time the job posting was archived. You can only send applications if the job posting is not archived.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"archived_reason":{"type":["string","null"],"enum":["JOB_POSTING_TAKEN_OFFLINE","MANUAL_ARCHIVE","REMOVED_FROM_JOB_FEED"]},"availability":{"type":"string","enum":["APPLYABLE","PENDING","ARCHIVED","UNAVAILABLE"],"description":"The status of the job posting. You can only send applications if the job posting is \"APPLYABLE\"."}},"required":["id","career_site","url","job_code","created_at","updated_at","archived_at","archived_reason","availability"],"examples":[{"id":"9QGNv3B98kL3hyELE1qsZ86s","career_site":{"id":"Chc4dua5asAQ48KUERDVF1bs","label":"Acme"},"url":"https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102","job_code":"ACME_13","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z","archived_at":null,"archived_reason":null,"availability":"PENDING"}]}},"required":["status","data"]},"PostAiApplyPostingsRequestBody":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https?:\\/\\/","description":"The URL of the job posting to parse"},"job_code":{"type":"string","description":"Job code to associate with the job posting"},"location":{"type":["object","null"],"properties":{"country":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"description":"The country in which the job is located"},"postal_code":{"type":"string","description":"The postal/zip code in which the job is located"}},"required":["country"],"description":"The location in which the job is located. When omitted, the existing location is preserved. Pass null to explicitly clear an existing location."},"career_site_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."}},"required":["url","career_site_id"]},"PostAiApplyPostingsPostingIdInquireParameterPostingId":{"type":"string","description":"The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing."},"PostAiApplyPostingsPostingIdInquirePositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"application_form":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"block_type":{"type":"string","const":"QUESTION"},"question_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."},"label":{"type":"string"},"description":{"type":["string","null"]},"required":{"type":"boolean"},"category":{"type":["string","null"],"enum":["EEO"]},"question_type":{"type":"string","enum":["TEXT","NUMBER","BOOLEAN","FILE","DATE","SINGLE_SELECT","MULTI_SELECT"]},"unified_key":{"type":["string","null"],"enum":["EMAIL","RESIDENCE_TYPE","RESIDENCE_FULL_STRING","RESIDENCE_COUNTRY","RESIDENCE_CITY","RESIDENCE_STATE","RESIDENCE_LINE_1","RESIDENCE_LINE_2","RESIDENCE_ZIP_CODE","APPLICANT_POOL_CONSENT","TERMS_AND_CONDITIONS","FIRST_NAME","LAST_NAME","FULL_NAME","GENDER","EXPECTED_START_DATE","RESUME","BIRTH_DATE","PHONE_NUMBER_TYPE","FULL_PHONE_NUMBER","PHONE_COUNTRY_CODE","PHONE_NATIONAL_NUMBER","PHONE_EXTENSION"]},"options":{"type":["array","null"],"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."},"label":{"type":"string"},"unified_key":{"type":["string","null"],"enum":["HOME","WORK","MAILING","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","MALE","FEMALE","NON_BINARY","NOT_SPECIFIED","MOBILE","LANDLINE","SOURCE_OTHER","SOURCE_OTHER_JOB_BOARD"]}},"required":["id","label","unified_key"]}},"display_when":{"type":["object","null"],"properties":{"question_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."},"answer_equals":{"oneOf":[{"type":"string","description":"Answer to a `TEXT` question, the option ID of the answer to a `SINGLE_SELECT` question, or the answer to a `DATE` question as an ISO 8601 date string (e.g. \"2021-12-31T23:59:59.000Z\")."},{"type":"array","items":{"type":"string"},"description":"Answer to a `MULTI_SELECT` question, contains the IDs of the selected options."},{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Answer to a `NUMBER` question."},{"type":"boolean","description":"Answer to a `BOOLEAN` question."},{"type":"object","properties":{"name":{"type":"string","description":"The original name (e.g., \"resume.pdf\")"},"content_type":{"type":"string","description":"The MIME type of the file (e.g., \"application/pdf\", \"image/jpeg\")"},"data":{"type":"string","format":"byte","description":"The file content encoded as a base64 string"}},"required":["name","content_type","data"],"description":"Answer to a `FILE` question."}]}},"required":["question_id","answer_equals"]}},"required":["block_type","question_id","label","description","required","category","question_type","unified_key","options","display_when"]},{"type":"object","properties":{"block_type":{"type":"string","const":"SECTION"},"label":{"type":"string"},"children":{"type":"array","items":{"type":"object"}}},"required":["block_type","label","children"]}]}},"submission_token":{"type":"string","description":"JWT token for submitting the application. Valid for 12 hours from generation."}},"required":["application_form","submission_token"],"examples":[{"application_form":[{"block_type":"SECTION","label":"Personal Information","children":[{"block_type":"QUESTION","question_id":"6VrjehyBk685vubNydiR1hSn","label":"First name","description":null,"required":true,"category":null,"question_type":"TEXT","unified_key":"FIRST_NAME","options":null,"display_when":null},{"block_type":"QUESTION","question_id":"Hjsapofs69cx2iAu6MtTfhoh","label":"Last name","description":null,"required":true,"category":null,"question_type":"TEXT","unified_key":"LAST_NAME","options":null,"display_when":null}]},{"block_type":"QUESTION","question_id":"EKaumKPGjeA97cb8ystMmkCe","label":"What is your desired working location?","description":"Select your preferred work arrangement","required":true,"category":null,"question_type":"SINGLE_SELECT","unified_key":null,"options":[{"id":"BsnL4pAhNQc26uSc4JopTP3P","label":"Remote","unified_key":null},{"id":"8T4fcKgzLxbKFUo4saXaoMTG","label":"On-site","unified_key":null},{"id":"2cJDK3dq4WNjovohSG7dSpfd","label":"Hybrid","unified_key":null}],"display_when":null},{"block_type":"QUESTION","question_id":"2H26BKTbDn2ygN2GfEcCsUP8","label":"What timezone are you in?","description":"This helps us schedule meetings at convenient times","required":true,"category":null,"question_type":"TEXT","unified_key":null,"options":null,"display_when":{"question_id":"EKaumKPGjeA97cb8ystMmkCe","answer_equals":"BsnL4pAhNQc26uSc4JopTP3P"}},{"block_type":"QUESTION","question_id":"AdM1EuwBKE4pz94SSRHMgmba","label":"Which office would you prefer?","description":null,"required":true,"category":null,"question_type":"SINGLE_SELECT","unified_key":null,"options":[{"id":"EHCqUb5E6xzfjnfHT2LEgmM7","label":"San Francisco","unified_key":null},{"id":"5RbHT73StFM5tHdF3aVr4do1","label":"New York","unified_key":null},{"id":"F4rRwGTNeLQZV5VLwstERpsT","label":"London","unified_key":null}],"display_when":{"question_id":"EKaumKPGjeA97cb8ystMmkCe","answer_equals":"8T4fcKgzLxbKFUo4saXaoMTG"}},{"block_type":"QUESTION","question_id":"FuVZvF26NueKcN46o5euHeGx","label":"How many days per week would you like to work in the office?","description":null,"required":true,"category":null,"question_type":"NUMBER","unified_key":null,"options":null,"display_when":{"question_id":"EKaumKPGjeA97cb8ystMmkCe","answer_equals":"2cJDK3dq4WNjovohSG7dSpfd"}}],"submission_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}]}},"required":["status","data"]},"PostAiApplyPostingsPostingIdInquireRequestBody":{"type":"object","properties":{}},"PostAiApplyApplyPositiveResponse":{"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."},"posting_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."},"status":{"type":"string"},"created_at":{"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"}},"updated_at":{"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"}}},"required":["id","posting_id","status","created_at","updated_at"],"examples":[{"id":"ADbmw5XSkeCSE1fAucoxEGnwZ","posting_id":"JDn252PEYa4rMhKbJBjtn3ng","status":"PENDING","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z"}]}},"required":["status","data"]},"PostAiApplyApplyRequestBody":{"type":"object","properties":{"submission_token":{"type":"string","description":"JWT token obtained from the POST /postings/:id/inquire endpoint. Valid for 12 hours."},"candidate_email":{"type":"string","description":"The email address of the candidate. This is used for deduplication (preventing duplicate applications from the same candidate) and internal tracking purposes. This field is required but should not be displayed to the candidate on your application form - you should provide this from your own system.","format":"email"},"query_params":{"type":"object","additionalProperties":{"type":"string"},"description":"Query parameters to be appended to the job posting URL when applying."},"screening_question_answers":{"type":"array","items":{"type":"object","properties":{"question_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."},"answer":{"oneOf":[{"type":"string","description":"Answer to a `TEXT` question, the option ID of the answer to a `SINGLE_SELECT` question, or the answer to a `DATE` question as an ISO 8601 date string (e.g. \"2021-12-31T23:59:59.000Z\")."},{"type":"array","items":{"type":"string"},"description":"Answer to a `MULTI_SELECT` question, contains the IDs of the selected options."},{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Answer to a `NUMBER` question."},{"type":"boolean","description":"Answer to a `BOOLEAN` question."},{"type":"object","properties":{"name":{"type":"string","description":"The original name (e.g., \"resume.pdf\")"},"content_type":{"type":"string","description":"The MIME type of the file (e.g., \"application/pdf\", \"image/jpeg\")"},"data":{"type":"string","format":"byte","description":"The file content encoded as a base64 string"}},"required":["name","content_type","data"],"description":"Answer to a `FILE` question."}]}},"required":["question_id","answer"]},"description":"Array of screening question answers. The answers need to match exactly with the questions you received on the POST /postings/:id/inquire endpoint. Otherwise, the application will be rejected."},"additional_clicks":{"type":"integer","format":"int64","minimum":0,"maximum":30,"default":0,"description":"Number of times to simulate the job being opened in addition to the actual click related to the application. When set, opens the job posting up to 30 additional times scattered across a 1-hour window."}},"required":["submission_token","candidate_email","screening_question_answers"]},"GetAiApplyApplicationsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAiApplyApplicationsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAiApplyApplicationsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAiApplyApplicationsParameterJobPostingIds":{"type":"string","description":"Filter by a comma-separated list of job posting IDs such as `89V6GEKpdZwqbxQz59n1ftFb,kcGHREEXCMF26Yhpuyh1gDVE`."},"GetAiApplyApplicationsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"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."},"job_posting_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."},"status":{"type":"string","enum":["SUBMITTED","DUPLICATE","PENDING","FAILED"]},"created_at":{"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"}},"updated_at":{"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"}}},"required":["id","job_posting_id","status","created_at","updated_at"]}},"next":{"type":["string","null"]}},"required":["results","next"],"examples":[{"results":[{"id":"ADbmw5XSkeCSE1fAucoxEGnwZ","job_posting_id":"JDn252PEYa4rMhKbJBjtn3ng","status":"PENDING","created_at":"2025-01-01T00:00:00.000Z","updated_at":"2025-03-02T23:12:32.000Z"}],"next":null}]}},"required":["status","data"]},"GetAiApplyUnifiedApiJobsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAiApplyUnifiedApiJobsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":5,"default":5,"description":"The number of results to return per page. Maximum is 5."},"GetAiApplyUnifiedApiJobsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAiApplyUnifiedApiJobsParameterRemoteIds":{"type":"string","description":"This parameter exists for backwards compatibility with Kombo's unified API. Supplying a comma-separated list of remote IDs such as `32,33` will return no jobs because AI Apply does not interface with a remote system that issues remote IDs."},"GetAiApplyUnifiedApiJobsParameterJobCodes":{"type":"string","description":"Filter by a comma-separated list of job codes such as `ACME_12,ACME_14`."},"GetAiApplyUnifiedApiJobsParameterCareerSiteIds":{"type":"string","description":"Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`."},"GetAiApplyUnifiedApiJobsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"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"},"name":{"type":["string","null"]},"job_code":{"type":["string","null"]},"description":{"type":["string","null"]},"confidential":{"type":["boolean","null"]},"weekly_hours":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"category":{"type":["string","null"]},"department":{"type":["string","null"]},"post_url":{"type":["string","null"]},"experience_level":{"type":["string","null"]},"salary_amount":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"salary_amount_from":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"salary_amount_to":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"salary_currency":{"type":["string","null"]},"custom_fields":{"type":["object","null"]},"integration_fields":{"type":"array","items":{"type":"object"}},"opened_at":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"},"closed_at":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"},"remote_created_at":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"},"remote_updated_at":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"},"contact_id":{"type":["string","null"]},"remote_data":{"type":["object","null"]},"changed_at":{"type":"string","format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"},"remote_deleted_at":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"},"remote_url":{"type":["string","null"]},"stages":{"type":"array","items":{"type":"object"}},"screening_questions":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"remote_id":{"type":["string","null"]},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"format":{"anyOf":[{"type":"object","properties":{"display_type":{"type":["string","null"],"enum":["SINGLE_LINE","MULTI_LINE","EMAIL","URL"],"description":"If unavailable, we recommend displaying a single-line input."},"max_length":{"type":["integer","null"],"format":"int64"},"type":{"type":"string","const":"TEXT"}},"required":["type"]},{"type":"object","properties":{"display_type":{"type":["string","null"],"enum":["SLIDER","FIELD"],"default":"FIELD"},"max":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"min":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308},"type":{"type":"string","const":"NUMBER"}},"required":["type"]},{"type":"object","properties":{"accepted_mime_types":{"type":["array","null"],"items":{"type":"string"}},"max_file_size_bytes":{"type":["integer","null"],"format":"int64"},"type":{"type":"string","const":"FILE"}},"required":["type"]},{"type":"object","properties":{"display_type":{"type":["string","null"],"enum":["DROPDOWN","RADIO"]},"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The Kombo ID of this question option. Use this ID to specify the answer to this question."},"remote_id":{"type":["string","null"],"description":"ID in the connected ATS. This might be null as some systems only use the name to identify the option."},"name":{"type":"string","description":"Content of the question option."}},"required":["id","name"]}},"type":{"type":"string","const":"SINGLE_SELECT"}},"required":["options","type"]},{"type":"object","properties":{"type":{"type":"string","const":"BOOLEAN"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"DATE"}},"required":["type"]},{"type":"object","properties":{"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The Kombo ID of this question option. Use this ID to specify the answer to this question."},"remote_id":{"type":["string","null"],"description":"ID in the connected ATS. This might be null as some systems only use the name to identify the option."},"name":{"type":"string","description":"Content of the question option."}},"required":["id","name"]}},"type":{"type":"string","const":"MULTI_SELECT"}},"required":["options","type"]},{"type":"object","properties":{"type":{"type":"string","const":"INFORMATION","description":"This is just a text block."}},"required":["type"]},{"type":"object","properties":{"raw_question":{"description":"We pass the original question data along so you can handle it."},"type":{"type":"string","const":"UNKNOWN","description":"When we're not able to map a specific question type yet, we will return this type. Every `UNKNOWN` question will also be parsed and unified by us at some point."}},"required":["type"]},{"type":"null"}]},"category":{"type":["string","null"],"enum":["EEO"]},"index":{"type":["integer","null"],"format":"int64"},"required":{"type":["boolean","null"]},"precondition_question_id":{"type":["string","null"]},"precondition_options":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"boolean"}},{"type":"null"}],"default":null}},"required":["id","remote_id","title","description","category","required"]}},"job_postings":{"type":"array","items":{"type":"object"}},"hiring_team":{"type":"array","items":{"type":"object"}},"employment_type":{"anyOf":[{"type":"string","enum":["FULL_TIME","PART_TIME","CONTRACT","SEASONAL","INTERNSHIP"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"One of 5 standardized values or — in rare cases where we can’t find a clear mapping — the original string passed through."},"status":{"anyOf":[{"type":"string","enum":["OPEN","CLOSED","DRAFT","ARCHIVED"]},{"type":"string","description":"If we can't find a clear mapping: The original string passed through."},{"type":"null"}],"description":"The job's current status.\n\n*Note: For any checks (e.g., \"can we publish this job?\"), always evaluate both `status` and `visibility`. For example, a job can be `status=OPEN` with `visibility=INTERNAL`, meaning only existing employees can apply.*\n\n In rare cases where we can’t find a clear mapping, the original string is passed through."},"visibility":{"type":["string","null"]},"remote_work_status":{"type":["string","null"]},"salary_period":{"type":["string","null"]},"location":{"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"]}}}},"required":["id","remote_id","name","job_code","description","confidential","weekly_hours","category","department","post_url","experience_level","salary_amount","salary_amount_from","salary_amount_to","salary_currency","custom_fields","integration_fields","opened_at","closed_at","remote_created_at","remote_updated_at","contact_id","remote_data","changed_at","remote_deleted_at","remote_url","stages","screening_questions","job_postings","hiring_team","visibility","remote_work_status","salary_period"]}},"next":{"type":["string","null"]}},"required":["results","next"]}},"required":["status","data"]},"PostAiApplyUnifiedApiJobsJobIdApplicationsParameterJobId":{"type":"string","description":"The Kombo ID or Remote ID of the Job this candidate should apply for. If you want to use the ID of the integrated system (remote_id) you need to prefix the id with \"remote:\". You can use the remote ID if you do not want to sync jobs."},"PostAiApplyUnifiedApiJobsJobIdApplicationsPositiveResponse":{"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."},"outcome":{"type":["string","null"],"enum":["PENDING","HIRED","DECLINED"],"description":"Parsed status of the application. If Kombo identifies that the application was accepted and the candidate hired, it will be `HIRED`. If the application was rejected or the candidate declined, it will be `DECLINED`. If the application is still in process, it will be `PENDING`.\nKombo will always try to deliver this information as reliably as possible."},"rejection_reason_name":{"type":["string","null"],"description":"Reason for the rejection of the candidate."},"rejected_at":{"description":"The time that the application was rejected.","type":["string","null"],"format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"current_stage_id":{"type":["string","null"],"description":"ID of the current application stage"},"job_id":{"type":["string","null"],"description":"The Kombo ID of the job which the candidate applied to. The ID can be used to retrieve the job from the `get jobs` endpoint."},"candidate_id":{"type":["string","null"],"description":"The Kombo ID of the candidate who applied to the job. The ID can be used to retrieve the candidate from the `get candidates` endpoint."},"screening_question_answers":{"type":["array","null"],"items":{"anyOf":[{"type":"object","properties":{"answer":{"type":"object","properties":{"content":{"type":["string","null"]}},"required":["content"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"TEXT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"choice":{"type":["string","null"]}},"required":["choice"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"SINGLE_SELECT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"choices":{"type":"array","items":{"type":"string"},"default":[]}}},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"MULTI_SELECT"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"checked":{"type":["boolean","null"]}},"required":["checked"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"BOOLEAN"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"number":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308}},"required":["number"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"NUMBER"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"date":{"type":["string","null"],"format":"date-time","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"}},"required":["date"]},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"DATE"}},"required":["remote_id","title","type"]}},"required":["answer","question"]},{"type":"object","properties":{"answer":{"type":"object","properties":{"raw":{"type":"null","description":"We pass the original question data along so you can handle it."}}},"question":{"type":"object","properties":{"remote_id":{"type":["string","null"]},"title":{"type":"string"},"type":{"type":"string","const":"UNKNOWN","description":"When we're not able to map a specific question type yet, we will return this type. Every `UNKNOWN` question will also be parsed and unified by us at some point."}},"required":["remote_id","title","type"]}},"required":["answer","question"]}]},"default":[],"description":"A list of answers to screening questions. The screening answer type `FILE` is currently unsupported."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the application in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated application URL is available, so you might need to fall back to the candidate URL."},"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_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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis is not available on all plans. Reach out to Kombo if you need it."},"current_stage":{"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."},"name":{"type":["string","null"],"description":"The application stage name. For example, \"Initial Screening\"."},"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."},"index":{"type":["integer","null"],"format":"int64","examples":[2]}},"required":["id","name","remote_id","index"]},"job":{"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."},"name":{"type":["string","null"],"description":"Title of the job."},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Backend Engineer","remote_id":"32"}]},"candidate":{"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":"First name of the candidate."},"last_name":{"type":["string","null"],"description":"Last name of the candidate."},"company":{"type":["string","null"],"description":"The current company of the candidate."},"title":{"type":["string","null"],"description":"The current job title of the candidate."},"confidential":{"type":["boolean","null"],"description":"Whether the candidate’s profile is confidential in the ATS."},"source":{"type":["string","null"],"description":"The hiring source of the candidate. If you're a job board or recruiting service, you can use this to validate which candidates applied through your service and ensure that the correct referral compensation is paid out."},"phone_numbers":{"type":["array","null"],"items":{"type":"object","properties":{"phone_number":{"type":"string"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["phone_number"]},"default":[],"description":"A list of phone numbers of the candidate."},"email_addresses":{"type":["array","null"],"items":{"type":"object","properties":{"email_address":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"type":{"type":["string","null"],"description":"Kombo exposes type information through this field. If we don't get any information from the tool, we will set this to `null`."}},"required":["type"]},"default":[],"description":"A list of email addresses of the candidate with an optional type. If an email address is invalid, it will be filtered out."},"social_media":{"type":["array","null"],"items":{"type":"object","properties":{"link":{"type":["string","null"]},"type":{"type":["string","null"]},"username":{"type":["string","null"]}}},"default":[],"description":"List of social media accounts of the candidate."},"location":{"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":"Location of the candidate."},"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.\n- `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_url":{"type":["string","null"],"format":"uri","description":"URL to the candidate profile in the source ATS system. When embedding this in your system, please consider that not for all ATS a dedicated candidate profile URL is available, so you might need to fall back to the application URL."},"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"}},"remote_data":{"type":["object","null"],"additionalProperties":true,"description":"Includes the data fetched from the remote system.\nPlease be aware that including this in you scope config might violate other\nscopes that are set.\n\nRemote data always has the endpoint path that we got the data from as the\ntop level key. For example, it could look like: `{ \"/companies\": { ... }}`\n\nThis 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"}},"tags":{"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."},"name":{"type":["string","null"]},"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."}},"required":["id","name","remote_id"],"examples":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","name":"High Potential","remote_id":"32"}]}}},"required":["id","remote_id","first_name","last_name","company","title","confidential","source","custom_fields","integration_fields","remote_url","remote_created_at","remote_updated_at","remote_data","changed_at","remote_deleted_at","tags"]}},"required":["id","remote_id","outcome","rejection_reason_name","rejected_at","current_stage_id","job_id","candidate_id","custom_fields","integration_fields","remote_url","changed_at","remote_deleted_at","remote_created_at","remote_updated_at","remote_data","current_stage","job","candidate"],"examples":[{"id":"H77fDF8uvEzGNPRubiz5DvQ7","remote_id":"32","outcome":"PENDING","rejection_reason_name":null,"rejected_at":null,"current_stage_id":"5J7L4b48wBfffYwek9Az9pkM","job_id":"H5daSm8e85Dmvmne3wLeCPhX","candidate_id":"26vafvWSRmbhNcxJYqjCzuJg","screening_question_answers":[],"custom_fields":{},"integration_fields":[],"remote_url":"https://example.com/applications/32","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"current_stage":{"id":"5J7L4b48wBfffYwek9Az9pkM","name":"Interview","remote_id":"5","index":2},"job":{"id":"H5daSm8e85Dmvmne3wLeCPhX","name":"Head of Integrations","remote_id":"1"},"candidate":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","company":"Acme, Inc.","title":"Head of Marketing","confidential":false,"source":"Employee Referral","phone_numbers":[{"phone_number":"+1-541-754-3010","type":"HOME"}],"email_addresses":[{"email_address":"john.doe@example.com","type":"PRIVATE"}],"social_media":[{"link":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"YOUTUBE","username":null}],"location":{"city":"Berlin","country":"DE","raw":"Berlin, Germany","state":"Berlin","street_1":"Lohmühlenstraße 65","street_2":null,"zip_code":"12435"},"custom_fields":{},"integration_fields":[],"remote_url":"https://example.com/candidates/32","remote_created_at":"2022-04-02T00:00:00.000Z","remote_updated_at":"2022-04-04T00:00:00.000Z","remote_data":null,"changed_at":"2022-04-04T00:00:00.000Z","remote_deleted_at":null,"tags":[{"id":"7DHDky9zk4qnWkycuuQjFXNh","name":"Fast Learner","remote_id":"1"}]}}]}},"required":["status","data"]},"PostAiApplyUnifiedApiJobsJobIdApplicationsRequestBody":{"type":"object","properties":{"stage_id":{"type":"string","description":"Stage this candidate should be in. If left out, the default stage for this job will be used. You can obtain the possible `stage_id`s from the `get-jobs` endpoint."},"candidate":{"type":"object","properties":{"first_name":{"type":"string","description":"The first name of the candidate."},"last_name":{"type":"string","description":"The last name of the candidate."},"email_address":{"type":"string","description":"The primary email address this application will be created with.","format":"email"},"additional_email_addresses":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PERSONAL","WORK","OTHER"]},"email_address":{"type":"string","format":"email"}},"required":["type","email_address"]}},"company":{"type":"string","description":"The company where the candidate is currently working."},"title":{"type":"string","description":"The current job title of the candidate."},"phone_number":{"type":"string","description":"The phone number of the candidate."},"additional_phone_numbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PERSONAL","WORK","OTHER"]},"phone_number":{"type":"string"}},"required":["type","phone_number"]}},"location":{"type":"object","properties":{"city":{"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."},"state":{"type":"string"},"street_1":{"type":"string"},"zip_code":{"type":"string"}},"required":["country"],"description":"The location of the candidate."},"gender":{"type":"string","enum":["MALE","FEMALE","OTHER"],"description":"The gender of the candidate. Must be one of `MALE`, `FEMALE`, or `OTHER`."},"availability_date":{"description":"The date the candidate is available to start working.","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"}},"salary_expectations":{"type":"object","properties":{"period":{"type":"string","enum":["MONTH","YEAR"],"description":"The period of the salary expectations. Must be one of `MONTH` or `YEAR`."},"amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The amount of the salary expectations."}},"required":["period","amount"],"description":"The salary expectations of the applicant. We will automatically convert the amount to a format that is suitable for the ATS you are using. For example, if you are using monthly salary expectations, we will convert the amount to a yearly salary if the ATS expects yearly salary expectations."},"social_links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"default":[],"description":"A list of social media links of the candidate. The links must be valid URLs."}},"required":["first_name","last_name","email_address"]},"attachments":{"type":"array","items":{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."},"type":{"type":"string","enum":["CV","COVER_LETTER","OTHER"],"description":"Type of the attachment in the ATS. This may affect where the uploaded file will be shown in your customer's system."}},"required":["name","type"]},"default":[],"description":"Array of the attachments you would like to upload. The first CV in the attachments will be treated as the resume of the candidate when the tool allows previewing a resume."},"source":{"type":"object","properties":{"name":{"type":"string","description":"Name of the source (e.g., `\"Example Job Board\"`)."},"unified_key":{"type":"string"},"id":{"type":"string"}},"description":"**(⚠️ Deprecated - Use [automatic source writing](/ats/features/application-attribution#automatic-attribution) instead)** Optional source information that will be attached to the candidate. If\nyou're a job board or recruiting service, you can use this to make sure your\ncustomers can see which candidates came from you.\n\nThis is deprecated because writing sources requires users to do some setup in most ATSs."},"sourced_by":{"type":"object","properties":{"user_id":{"type":"string","description":"The Kombo ID or Remote ID of the User. Use the Kombo ID directly, or prefix the remote ID with \"remote:\" to reference the user by their ID in the remote system."}},"required":["user_id"],"description":"Credit the recruiter or team member who sourced this candidate.\n\nWhile the `source` field tracks the channel/platform (e.g., \"Awesome Jobboard\"), the `sourced_by` field tracks the individual person responsible for finding the candidate."},"gdpr_consent":{"type":"object","properties":{"expires_at":{"description":"Until when the candidate has granted the company they're applying to permission to process their personal data.","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"}},"given":{"type":"boolean","description":"Whether the candidate has given consent."}},"description":"Optional GDPR consent information required in some jurisdictions (like the Czech Republic or Slovakia)."},"remote_fields":{"allOf":[{"type":"object","properties":{"successfactors":{"type":"object","properties":{"Candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to SuccessFactor's `Candidate` object."},"JobApplication":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to SuccessFactor's `JobApplication` object."},"copyJobApplicationAttachments":{"type":"boolean","description":"If set to true, we will copy custom attachments from the JobApplication to the Candidate."},"update_existing_candidate":{"type":["boolean","null"],"description":"When the candidate already exists, whether to update the Candidate with the remote fields found under the Candidate entity."}},"description":"Fields specific to SAP SuccessFactors."},"personio":{"type":"object","properties":{"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Personio's `application` object."}},"description":"Fields specific to Personio."},"talentsoft":{"type":"object","properties":{"applicant":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to TalentSoft's `applicant` object."},"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to TalentSoft's `application` object."}},"description":"Fields specific to TalentSoft."},"teamtailor":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Teamtailor's `Candidate` object."},"application":{"type":"object","properties":{"attributes":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Teamtailor's attributes section `Job application` object."}}}}},"greenhouse":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Greenhouse's `Candidate` object."},"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Greenhouse's `Application` object."}},"description":"Fields specific to Greenhouse."},"lever":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Lever's `Candidate` object. Note: make sure to submit the keys and values in the correct form data format."}},"description":"Fields specific to Lever."},"workable":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Workable's `Candidate` object."}},"description":"Fields specific to Workable."},"workday":{"type":"object","properties":{"Candidate_Data":{"type":"object","properties":{"Name_Detail_Data":{"type":"object","properties":{"Middle_Name":{"type":"string","description":"The candidate's middle name"},"Social_Suffix_Reference":{"type":"object","properties":{"Predefined_Name_Component_ID":{"type":"string"}},"required":["Predefined_Name_Component_ID"],"description":"The WID of the social suffix reference for the candidate"}}},"Language_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"],"description":"Used to set the candidate's primary language"},"Job_Application_Data":{"type":"object","properties":{"Job_Applied_To_Data":{"type":"object","properties":{"Global_Personal_Information_Data":{"type":"object","properties":{"Date_of_Birth":{"type":"string"}}}}},"Resume_Data":{"type":"object","properties":{"Education_Data":{"type":"array","items":{"type":"object","properties":{"School_Name":{"type":"string"},"First_Year_Attended":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"Last_Year_Attended":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"Field_of_Study_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Degree_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Grade_Average":{"type":"string"}}}},"Skill_Data":{"type":"array","items":{"type":"object","properties":{"Skill_Name":{"type":"string"}}}},"Language_Data":{"type":"array","items":{"type":"object","properties":{"Language_Reference":{"type":"object","properties":{"WID":{"type":"string"}}},"Language":{"type":"object","properties":{"Native":{"type":"boolean"},"Language_Ability":{"type":"array","items":{"type":"object","properties":{"Language_Ability_Data":{"type":"object","properties":{"Language_Proficiency_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]},"Language_Ability_Type_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]}}}}}}},"required":["Language_Ability"]}}}},"Experience_Data":{"type":"array","items":{"type":"object","properties":{"Company_Name":{"type":"string"},"Title":{"type":"string"},"Location":{"type":"string"},"Start_Date":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","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":"YYYY-MM-DDTHH:mm:ss.sssZ","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"}},"Currently_Work_Here":{"type":"boolean"},"Description":{"type":"string"}},"required":["Company_Name","Title","Start_Date"]}}}}}},"Contact_Data":{"type":"object","properties":{"Location_Data":{"type":"object","properties":{"Address_Line_1":{"type":"string"},"Address_Line_2":{"type":"string"},"Region_Subdivision_1":{"type":"string"},"Country_Region_Reference":{"type":"object","properties":{"Country_Region_ID":{"type":"string"}},"required":["Country_Region_ID"]},"Country_City_Reference":{"type":"object","properties":{"WID":{"type":"string"}},"required":["WID"]}}}}},"Worker_Reference":{"type":"object","properties":{"WID":{"type":"string"},"Employee_ID":{"type":"string"}},"description":"Reference to the Worker (employee) to link the candidate to. Provide either WID or Employee_ID."}}},"Override_Source_Reference_WID":{"type":"string","description":"Used to override the automatic source WID."}},"description":"Fields specific to Workday. The remote fields schema follows the documentation at https://community.workday.com/sites/default/files/file-hosting/productionapi/Recruiting/v43.0/Put_Candidate.html. Only defined fields are supported, if you need additional field support please reach out to Kombo support."},"zohorecruit":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Zoho Recruit's `Candidate` object."}},"description":"Fields specific to Zoho Recruit."},"bullhorn":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Bullhorn's `Candidate` object."},"job_submission":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Bullhorn's `JobSubmission` object."}},"description":"Fields specific to Bullhorn."},"smartrecruiters":{"type":"object","properties":{"candidate_with_questions":{"type":"object","additionalProperties":true,"description":"**(⚠️ Deprecated - Use the `candidate` field instead.)** Fields that we will pass through to the SmartRecruiters's `Candidate` object when created with screening question answers. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1"},"candidate_without_questions":{"type":"object","additionalProperties":true,"description":"**(⚠️ Deprecated - Use the `candidate` field instead.)** Fields that we will pass through to the SmartRecruiters's `Candidate` object when created with screening question answers. This API is used: https://developers.smartrecruiters.com/reference/candidatesaddtojob-1"},"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to the SmartRecruiters's `Candidate` object. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1"}},"description":"Fields specific to SmartRecruiters."},"talentadore":{"type":"object","properties":{"applications":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to the Talentadore's when creating applications."}},"description":"Fields specific to Talentadore."},"guidecom":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to GuideCom's `Candidate` object."}},"description":"Fields specific to GuideCom."},"dvinci":{"type":"object","properties":{"application":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to d.vinci's application object. This API is used: https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html#jobs__id__applyApi_post"},"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to d.vinci's candidate/application payload as top-level fields (e.g., dateOfBirth)."}},"description":"Fields specific to d.vinci."},"hrworks":{"type":"object","properties":{"jobApplication":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to HRWorks's `Job Application` object. This API is used: https://developers.hrworks.de/docs/hrworks-api-v2/53021f035f62d-post-job-applications"}},"description":"Fields specific to GuideCom."},"jobylon":{"type":"object","properties":{"application":{"type":"object","properties":{"message":{"type":"string","description":"The `message` field of Jobylon's create application endpoint's request body."}},"description":"Fields that we will pass through to Jobylon's create application [endpoint](https://developer.jobylon.com/push-api-and-webhooks#-xL0v)'s request body."}},"description":"Fields specific to Jobylon."},"avature":{"type":"object","properties":{"workflow":{"type":"object","properties":{"step":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"The ID of the workflow step to assign to the candidate."}},"required":["id"]}}}},"description":"Fields specific to Avature."},"recruitee":{"type":"object","properties":{"candidate":{"type":"object","properties":{"cover_letter_text":{"type":"string","description":"The cover letter text as a string. This will be visible on the main candidate page. Can be provided together with the `cover_letter` attachment, which will end up in a separate `file` section."}}}},"description":"Fields specific to Recruitee."},"rexx":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Rexx's application form fields."}},"description":"Fields specific to Rexx."},"umantis":{"type":"object","properties":{"person":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Abacus Umantis's \"Create a person\" endpoint's `attributes` when creating a candidate."}},"description":"Fields specific to Abacus Umantis."},"piloga":{"type":"object","properties":{"candidate":{"type":"object","properties":{"street":{"type":"string","description":"The street address of the candidate."}},"description":"Additional candidate fields for P&I Loga that will be mapped to the application form."}},"description":"Fields specific to P&I Loga."},"pinpoint":{"type":"object","properties":{"candidate":{"type":"object","additionalProperties":true,"description":"Fields that we will pass through to Pinpoint's `Candidate` object."}},"description":"Fields specific to Pinpoint."},"covetorest":{"type":"object","properties":{"candidate":{"type":"object","properties":{"mandant":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The mandant field for the candidate in Coveto."}},"description":"Additional candidate fields that will be passed to the Coveto candidate creation."}},"description":"Fields specific to Coveto REST."}},"description":"Additional fields that we will pass through to specific ATS systems."},{"type":"object","properties":{"greenhouse":{"type":"object","properties":{"post_headers":{"type":"object","properties":{"On-Behalf-Of":{"type":["string","null"],"description":"ID of the the user that will show up as having performed the action in Greenhouse. We already pass a value by default, but you can use this to override it."}},"description":"Headers we will pass with `POST` requests to Greenhouse."}},"description":"Fields specific to Greenhouse."},"workable":{"type":"object","properties":{"on_behalf_of_user_remote_id":{"type":"string","description":"The remote ID of the user that will be displayed in the UI as the one that performed the action."}},"description":"Workable specific remote fields for ATS actions."}},"description":"Additional fields that we will pass through to specific ATS systems."}],"description":"Additional fields that we will pass through to specific ATS systems."},"screening_question_answers":{"type":"array","items":{"type":"object","properties":{"question_id":{"type":"string","description":"ID of the question returned by the Kombo API. We'll report a warning in the logs if the question can't be found on the job."},"answer":{"anyOf":[{"type":"string","description":"Answer to a `TEXT` question or the option ID of the answer to a `SINGLE_SELECT` question."},{"type":"boolean","description":"Answer to a `BOOLEAN` question."},{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Answer to a `NUMBER` question."},{"type":"array","items":{"type":"string"},"description":"Answer to a `MULTI_SELECT` question. The array elements are the IDs of the selected options."},{"description":"Answer to a `DATE` question as an ISO 8601 date string.","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"}},{"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`).\n\nIf 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.\n\n**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.\n\nIf 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)).\n\n**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.\n\n**Note:** You must provide either this or `data_url`. We recommend `data_url` over `data` for most cases."}},"required":["name"],"description":"Answer to a `FILE` question."}],"description":"Answer to a question. This will be validated based on the question format and throw an error if the answer is invalid. Here is a description of each question type and the required answer format:\n\n`TEXT` - Simply provide a \"string\" answer.\n\n`SINGLE_SELECT` - Provide the ID of the answer as a string.\n\n`MULTI_SELECT` - Provide a string array containing the question IDs of the selected options.\n\n`BOOLEAN` - Either `true` or `false`.\n\n`NUMBER` - A number.\n\n`DATE` - Provide the answer as an ISO 8601 date string.\n\n`FILE` - Please select Option 6 in the dropdown above to see the required format."}},"required":["question_id","answer"]},"description":"Array of answers to screening questions. Currently, not all question types are supported, and unsupported ones will not be submitted.\n\nThe available questions for a job can be retrieved from the get jobs endpoint. The answers will be validated based on the format of the questions. Make sure to follow this schema to avoid errors.","examples":[[{"question_id":"D8yPrjXXvA2XeBksTmrVvKSn","answer":"Yes"}]]},"query_params":{"type":"object","additionalProperties":{"type":"string"},"description":"Query parameters to be appended to the job posting URL when applying."}},"required":["candidate"]},"GetAiApplyJobFeedsParameterCursor":{"type":"string","description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response."},"GetAiApplyJobFeedsParameterPageSize":{"type":"integer","format":"int64","minimum":1,"maximum":250,"default":100,"description":"The number of results to return per page. Maximum is 250."},"GetAiApplyJobFeedsParameterIds":{"type":"string","description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`."},"GetAiApplyJobFeedsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"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."},"label":{"type":"string","description":"The label of the job feed"}},"required":["id","label"]}},"next":{"type":["string","null"]}},"required":["results","next"],"examples":[{"results":[{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Standard Acquisition Services LLC"}],"next":null}]}},"required":["status","data"]},"PostAiApplyJobFeedsPositiveResponse":{"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."},"label":{"type":"string","description":"The label of the job feed"}},"required":["id","label"],"examples":[{"id":"mK7pQw9xNvEr2LdY5sGh8TcZ","label":"Standard Acquisition Services LLC"}]}},"required":["status","data"]},"PostAiApplyJobFeedsRequestBody":{"type":"object","properties":{"label":{"type":"string","minLength":1,"description":"The label of the job feed"}},"required":["label"]},"PostConnectCreateLinkPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"link":{"type":"string","format":"uri"}},"required":["link"],"examples":[{"link":"https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE"}]}},"required":["status","data"]},"PostConnectCreateLinkRequestBody":{"type":"object","properties":{"end_user_email":{"type":"string","description":"The email of the user this link is meant for.","format":"email"},"end_user_organization_name":{"type":"string","minLength":1,"description":"The name of the user's organization."},"end_user_origin_id":{"type":["string","null"],"minLength":1,"description":"The id the user/organization has in your own database."},"remote_environment":{"type":["string","null"],"description":"If the tool you want to connect offers different environments, you can specify which one you want to connect to here. If you don't specify this, we'll assume you want to use the production environment. Note that this can only be used if you've also specified a tool through `integration_tool`."},"integration_category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"default":"HRIS","description":"Category of the integration you want your customer to create."},"integration_tool":{"type":["string","null"],"enum":["workday","successfactors","smartrecruiters","factorial","oraclerecruiting","lever","icims","cornerstonetalentlink","recruitee","recruiterflow","greenhouse","greenhousejobboard","teamtailor","teamtailorjobboards","ashby","talentsoft","talentsoftcustomer","concludis","talention","piloga","onlyfy","personio","ukgpro","ukgready","adpworkforcenow","taleo","rexx","afas","bamboohr","bullhorn","bullhornlogin","workable","jobvite","fountain","softgarden","softgardenpartner","pinpoint","welcometothejungle","dvinci","dvinciadmin","join","sagehr","traffit","erecruiter","abacusumantis","umantis","jobylon","taleez","hrworks","otys","zohorecruit","ceipal","eploy","jobdiva","careerplug","perview","eightfold","paylocity","paycor","avature","apploi","phenom","paradox","heyrecruit","recruhr","jazzhr","bite","homerun","mysolution","carerix","hroffice","talentclue","inrecruiting","ubeeo","connexys","hr4you","cornerstoneondemand","zvooverecruit","odoo","comeet","compleet","compleetpitcher","gem","laura","covetorest","coveto","crelate","manatal","avionte","mhmhr","asymbl","breezyhr","flatchr","dayforce","digitalrecruiters","applicantstack","reachmee","talentadore","sandbox","guidecom","spott","loxo","workdaycustomreport","workdaycustomreportsftp","payfitcustomer","payfitpartner","payfit","employmenthero","fourth","kenjo","heavenhr","hibob","cezannehr","entraid","azuread","googleworkspace","nmbrs","deel","remotecom","iriscascade","okta","sagepeople","humaans","eurecia","oraclehcm","officient","sesamehr","charliehr","abacus","zohopeople","gusto","breathehr","catalystone","mirus","alexishr","simployer","peple","youserve","hansalog","lattice","latticetalent","hoorayhr","trinet","namely","paycom","insperity","paychex","rippling","sapling","peoplehr","lucca","zelt","planday","boondmanager","haileyhr","silae","oysterhr","kiwihr","square","perbilityhelix","leapsome","loket","workforcecom","peoplefirst","sdworx","itrent","absenceio","a3innuvanomina","scim","datevhr","datev","datevlug","sympa","youforce","nibelis","peoplexd","sftp","sftpfetch","360learning","udemy","linkedinlearning"],"description":"Pre-define a tool this integration link can be used for."},"language":{"type":["string","null"],"enum":["en","de","fr","it","es"],"default":"en","description":"Language of the connection flow UI."},"scope_config_id":{"type":["string","null"],"description":"Specify a scope config that should be used for this integration. This is an advanced feature, only use it if you know what you're doing!"},"enable_filtering":{"type":"boolean","default":false,"description":"Enable the [filtering feature](https://docs.kombo.dev/other/filtering) for the integration. HRIS only."},"enable_field_mapping":{"type":"boolean","default":false,"description":"Enable the [field mapping feature](https://docs.kombo.dev/hris/features/setup-flow/introduction#field-mapping) for this integration."},"link_type":{"type":"string","enum":["EMBEDDED","MAGIC_LINK"],"default":"EMBEDDED","description":"The type of link you want to create. `EMBEDDED` is for the [embedded flow](../guides/connect/embedded-flow) using the Kombo Connect SDK (these links are valid for 1 hour) and `MAGIC_LINK` is for [magic links](../guides/connect/magic-links) which you send out manually to customers (there are valid for 1 year).\n\nThis defaults to `EMBEDDED`, which is our recommended method of implementing the connection flow for a seamless user experience."}},"required":["end_user_email","end_user_organization_name"]},"GetConnectIntegrationByTokenTokenParameterToken":{"type":"string"},"GetConnectIntegrationByTokenTokenPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"tool":{"type":"string"},"id":{"type":"string"},"end_user_origin_id":{"type":["string","null"]},"end_user_organization_name":{"type":"string"},"end_user_email":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"setup_status":{"type":"string","enum":["INCOMPLETE","FINAL_SYNC_PENDING","COMPLETED"],"description":"The setup_status is used in conjunction with the filtering and field mapping features. If these are enabled in the connection flow, the integration will start in an \"INCOMPLETE\" state and move to \"COMPLETE\" once all steps are finished.\n\n- `INCOMPLETE`: Setup is still in progress. Some steps aren’t finished, so no data is available yet. Syncs only run as needed for setup.\n- `FINAL_SYNC_PENDING`: Setup is complete, and the final sync is running. Data will be available after this sync is done.\n- `COMPLETED`: Setup is fully finished, and the integration is ready to use."}},"required":["tool","id","end_user_origin_id","end_user_organization_name","end_user_email","setup_status"],"examples":[{"tool":"personio","id":"personio:CBNMt7dSNCzBdnRTx87dev4E","end_user_origin_id":"36123","end_user_organization_name":"Acme, Inc.","end_user_email":"user@example.com","setup_status":"COMPLETED"}]}},"required":["status","data"]},"PostConnectActivateIntegrationPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"tool":{"type":"string"},"id":{"type":"string"},"end_user_origin_id":{"type":["string","null"]},"end_user_organization_name":{"type":"string"},"end_user_email":{"type":["string","null"],"pattern":"^(?!\\.)(?!.*\\.\\.)([\\w'+-.]*)[\\w+-]@([\\da-z][\\da-z-]*\\.)+[a-z]{2,}$"},"setup_status":{"type":"string","enum":["INCOMPLETE","FINAL_SYNC_PENDING","COMPLETED"],"description":"The setup_status is used in conjunction with the filtering and field mapping features. If these are enabled in the connection flow, the integration will start in an \"INCOMPLETE\" state and move to \"COMPLETE\" once all steps are finished.\n\n- `INCOMPLETE`: Setup is still in progress. Some steps aren’t finished, so no data is available yet. Syncs only run as needed for setup.\n- `FINAL_SYNC_PENDING`: Setup is complete, and the final sync is running. Data will be available after this sync is done.\n- `COMPLETED`: Setup is fully finished, and the integration is ready to use."}},"required":["tool","id","end_user_origin_id","end_user_organization_name","end_user_email","setup_status"],"examples":[{"tool":"personio","id":"personio:CBNMt7dSNCzBdnRTx87dev4E","end_user_origin_id":"36123","end_user_organization_name":"Acme, Inc.","end_user_email":"user@example.com","setup_status":"COMPLETED"}]}},"required":["status","data"]},"PostConnectActivateIntegrationRequestBody":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"GetCustomDatevSystemInformationPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"consultant_number":{"type":"number","format":"double","minimum":1000,"maximum":9999999,"description":"The consultant number used for this DATEV integration (BeraterNr)."},"client_number":{"type":"number","format":"double","minimum":1,"maximum":99999,"description":"The client number used for this DATEV integration (MandantenNr)."},"target_system":{"type":"string","enum":["LODAS","LuG"],"description":"The target system's name (Ziel)."}},"required":["consultant_number","client_number","target_system"],"examples":[{"consultant_number":1234567,"client_number":99999,"target_system":"LODAS"}]}},"required":["status","data"]},"PostCustomDatevPassthroughPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","examples":[{}]},"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"]},"PostCustomDatevPassthroughRequestBody":{"type":"object","properties":{"file_content":{"type":"string","minLength":1},"accounting_month":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","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"}},"target_system":{"type":"string","enum":["LODAS","LuG"]},"file_type":{"type":"string","enum":["STAMMDATEN","BEWEGUNGSDATEN"]},"file_name":{"type":"string","examples":["Stammdaten.txt"]}},"required":["file_content","accounting_month","target_system","file_type","file_name"]},"GetCustomDatevCheckEauPermissionPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"ready":{"type":"boolean"},"error":{"type":"string"}},"required":["ready"]},"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"]},"GetCustomDatevEauRequestsEauIdParameterEauId":{"type":"string"},"GetCustomDatevEauRequestsEauIdPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"raw":{"type":"object","properties":{"source":{"type":"string","description":"DATEV source system system (LuG or LODAS)."},"start_work_incapacity":{"type":"string","description":"2022-01-13"},"collaboration_identifier":{"type":"string","description":"Internal DATEV identifier."},"feedbacks_from_health_insurance":{"type":"array","items":{"type":"object","properties":{"guid":{"type":"string","description":"The unique identifier of the feedback."},"contact_person":{"type":["object","null"],"properties":{"gender_contact_person":{"type":["string","null"],"enum":["M","F","X","D"],"description":"[DEPRECATED] Gender of the contact person. M (male), W (female), X (unknown), D (divers)."},"name":{"type":"string","description":"Name of the contact person."},"telephone":{"type":"string","description":"Telephone number of the contact person."},"fax":{"type":["string","null"],"description":"Fax number of the contact person."},"email":{"type":["string","null"],"description":"Email address of the contact person."},"name1_health_insurance":{"type":"string","description":"Name of the health insurance."},"name2_health_insurance":{"type":["string","null"],"description":"[DEPRECATED] Second part of the health insurance name."},"name3_health_insurance":{"type":["string","null"],"description":"[DEPRECATED] Third part of the health insurance name."},"postal_code":{"type":"string","description":"Postal code of the contact person."},"city":{"type":"string","description":"City of the contact person."},"street":{"type":["string","null"],"description":"Street of the contact person."},"house_number":{"type":["string","null"],"description":"House number of the contact person."}},"required":["name","telephone","fax","email","name1_health_insurance","postal_code","city","street","house_number"]},"incapacity_for_work":{"type":"object","properties":{"start_work_incapacity_employer":{"type":"string","description":"yyyy-MM-dd date provided in the initial request."},"start_work_incapacity_au":{"type":["string","null"],"description":"yyyy-MM-dd start date of the AU."},"end_work_incapacity_au":{"type":["string","null"],"description":"yyyy-MM-dd expected end date of the AU."},"actual_end_work_incapacity_au":{"type":["string","null"],"description":"yyyy-MM-dd actual end date after the hospitalization report was received."},"date_of_diagnosis":{"type":["string","null"],"description":"yyyy-MM-dd date of diagnosis"},"flag_current_work_incapacity":{"type":["number","null"],"format":"double","minimum":-1.7976931348623157e+308,"description":"Flag: 0 = unknown\nFlag: 1 = Health insurance not responsible\nFlag: 2 = incapacity for work\nFlag: 3 = hospitalisation\nFlag: 4 = eAU or hospitalisation-report is not existing\nFlag: 5 = rehabilitation prevention\nFlag: 6 = inpatient hospital treatment\nFlag: 7 = in verification\nFlag: 8 = other evidence available\nFlag: 9 = forwarding procedure"},"accident_at_work":{"type":"boolean","description":"If the accident is a work accident according to § 295 Para. 1 SGB V."},"assignment_accident_insurance_doctor":{"type":"boolean","description":"Indication of whether the insured person has been assigned to the accident insurance doctor."},"other_accident":{"type":"boolean","description":"If the accident is the result of another accident according to § 295 Para. 1 SGB V."},"start_hospitalisation":{"type":["string","null"],"description":"[DEPRECATED] yyyy-MM-dd start date of the hospitalization."},"end_hospitalisation":{"type":["string","null"],"description":"[DEPRECATED] yyyy-MM-dd end date of the actual hospitalization."},"initial_certificate":{"type":"boolean","description":"Whether the certificate is initial or a follow up certificate."},"automatic_feedback_until":{"type":["string","null"],"description":"yyyy-MM-dd date until the health insurance will update this requests status."}},"required":["start_work_incapacity_employer","start_work_incapacity_au","end_work_incapacity_au","date_of_diagnosis","flag_current_work_incapacity","accident_at_work","assignment_accident_insurance_doctor","other_accident","initial_certificate","automatic_feedback_until"]},"error_block_list":{"type":["array","null"],"items":{"type":"object","properties":{"origin":{"type":["string","null"],"description":"Origin of the error. (Health insurance or DATEV)"},"error_number":{"type":["string","null"],"description":"Error code"},"error_text":{"type":["string","null"],"description":"Human readable description of the error."},"error_value":{"type":["string","null"],"description":"Erroneous value in case of a validation error. (e.g. date)"}},"required":["origin","error_number","error_text","error_value"]}}},"required":["guid","contact_person","incapacity_for_work","error_block_list"]}}},"required":["source","start_work_incapacity","feedbacks_from_health_insurance"]}},"required":["raw"]},"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"]},"GetCustomDatevCheckDocumentPermissionPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"anyOf":[{"type":"object","properties":{"ready":{"type":"boolean"},"documents_granted":{"type":"array","items":{"type":"string"}}},"required":["ready","documents_granted"]},{"type":"object","properties":{"ready":{"type":"boolean"},"error":{"type":"string"}},"required":["ready","error"]}]},"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"]},"GetCustomDatevAvailableDocumentsParameterPeriod":{"type":"string","description":"Provide the period in the format YYYY-MM-DD for which to check for available documents."},"GetCustomDatevAvailableDocumentsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"document_type":{"type":"string","description":"The document's type."},"available_for_employees":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"]},"remote_id":{"type":"string"}},"required":["id","remote_id"]},"description":"List of employees this document is available for."},"is_company_document":{"type":"boolean","description":"Is true if the document is a company document."}},"required":["document_type","available_for_employees","is_company_document"]}}},"required":["results"],"examples":[{"results":[{"document_type":"LOBN","available_for_employees":[{"id":"8Xi6iZrwusZqJmDGXs49GBmJ","remote_id":"123456"}],"is_company_document":false},{"document_type":"LOJO","available_for_employees":[],"is_company_document":true}]}]},"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"]},"PostCustomDatevDownloadDocumentPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"data_url":{"type":"string","format":"uri","description":"The URL to download the document from."},"file_name":{"type":"string"},"content_type":{"type":"string"}},"required":["data_url","file_name","content_type"]},"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"]},"PostCustomDatevDownloadDocumentRequestBody":{"type":"object","properties":{"accounting_month":{"description":"The month to request the document for.","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"}},"document_type":{"type":"string","enum":["AANB","ABEG","BUBE","DAWE","KBNW","KOST","KOTR","LKTO","LOBN","LJOE","LOJE","LOJO","LOPE","LOPN","LOPS","LORE","LOWE","LSTA","LSTB","LSTE","PDAT","PFAN","PRZA","SBNW","SVNW","WEAN","ZABR","ZAKF","ZAUW"],"description":"Brutto/Netto (LOBN)\n\nLohnsteuerbescheinigung (german/english) (LSTB/LSTE)\n\nSV-Nachweis (SVNW)\n\nA1-Bescheinigung (ABEG)\n\nAntragsbestätigung A1-Bescheinigung (AANB)\n\nBuchungsbeleg (BUBE)\n\nLohnjournal (german/english) (LOJO/LJOE)\n\nLohnsteueranmeldung (LSTA)\n\nBeitragsnachweis (KBNW)\n\nBeitragsnachweis-Erläuterung (SBNW)\n\nÜbersicht Zahlungen (ZAKF)\n\nDÜ Zahlungen (PRZA)\n\nBarauszahlungswerte (ZABR)\n\nÜberzahlungen-Werte (ZAUW)\n\nPersonalkostenübersicht (german/english) (LOPS/LOPE)\n\nKostenstellenwerte (KOST)\n\nKostenträgerwerte (KOTR)\n\nLohnartenwerte einfach/erweitert (LOWE/LOPN)\n\nLohnkonto (LKTO)\n\nPersonalreport (LORE)\n\nMitarbeiterstammdaten (PDAT)\n\nPfändungswerte (PFAN)\n\nDarlehenswerte (DAWE)\n\nWertguthaben je Arbeitnehmer (WEAN)"},"employee_id":{"type":["string","null"]}},"required":["accounting_month","document_type","employee_id"],"description":"The data to request an electronic certificate of incapacity for work (eAU).","examples":[{"accounting_month":"2001-12-01","document_type":"LOJE","employee_id":null},{"accounting_month":"2001-12-01","document_type":"LSTB","employee_id":"remote:200"}]},"PostCustomDatevEmployeesEmployeeIdDownloadDocumentParameterEmployeeId":{"type":["string","null"]},"PostCustomDatevEmployeesEmployeeIdDownloadDocumentPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"data_url":{"type":"string","format":"uri","description":"The URL to download the document from."},"file_name":{"type":"string"},"content_type":{"type":"string"}},"required":["data_url","file_name","content_type"]},"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"]},"PostCustomDatevEmployeesEmployeeIdDownloadDocumentRequestBody":{"type":"object","properties":{"accounting_month":{"description":"The month to request the document for.","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"}},"document_type":{"type":"string","enum":["AANB","ABEG","BUBE","DAWE","KBNW","KOST","KOTR","LKTO","LOBN","LJOE","LOJE","LOJO","LOPE","LOPN","LOPS","LORE","LOWE","LSTA","LSTB","LSTE","PDAT","PFAN","PRZA","SBNW","SVNW","WEAN","ZABR","ZAKF","ZAUW"],"description":"Brutto/Netto (LOBN)\n\nLohnsteuerbescheinigung (german/english) (LSTB/LSTE)\n\nSV-Nachweis (SVNW)\n\nA1-Bescheinigung (ABEG)\n\nAntragsbestätigung A1-Bescheinigung (AANB)\n\nBuchungsbeleg (BUBE)\n\nLohnjournal (german/english) (LOJO/LJOE)\n\nLohnsteueranmeldung (LSTA)\n\nBeitragsnachweis (KBNW)\n\nBeitragsnachweis-Erläuterung (SBNW)\n\nÜbersicht Zahlungen (ZAKF)\n\nDÜ Zahlungen (PRZA)\n\nBarauszahlungswerte (ZABR)\n\nÜberzahlungen-Werte (ZAUW)\n\nPersonalkostenübersicht (german/english) (LOPS/LOPE)\n\nKostenstellenwerte (KOST)\n\nKostenträgerwerte (KOTR)\n\nLohnartenwerte einfach/erweitert (LOWE/LOPN)\n\nLohnkonto (LKTO)\n\nPersonalreport (LORE)\n\nMitarbeiterstammdaten (PDAT)\n\nPfändungswerte (PFAN)\n\nDarlehenswerte (DAWE)\n\nWertguthaben je Arbeitnehmer (WEAN)"}},"required":["accounting_month","document_type"],"description":"The data to request an electronic certificate of incapacity for work (eAU).","examples":[{"accounting_month":"2001-12-01","document_type":"LOJE"},{"accounting_month":"2001-12-01","document_type":"LSTB"}]},"PostCustomDatevEmployeesEmployeeIdEauRequestsParameterEmployeeId":{"type":"string","description":"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`)"},"PostCustomDatevEmployeesEmployeeIdEauRequestsPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"eau_id":{"type":"string"}},"required":["eau_id"]},"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"]},"PostCustomDatevEmployeesEmployeeIdEauRequestsRequestBody":{"type":"object","properties":{"start_work_incapacity":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Date \"start_work_incapacity\" from the original eAU-Request."},"notification":{"type":"object","properties":{"email":{"type":"string","pattern":"^[\\w!#$%&'*+/=?^`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^`{|}~-]+)*@(?:[\\w-]+\\.)+[\\w-]{2,}$","description":"This is the email address that should be notified as soon as a feedback is received."}},"required":["email"]},"contact_person":{"type":"object","properties":{"gender":{"type":"string","enum":["M","W","X","D"]},"name":{"type":"string","minLength":0,"maxLength":30},"telephone":{"type":"string","minLength":0,"maxLength":20,"pattern":"([\\d+])[\\d ()/-]+"},"fax":{"type":"string","minLength":0,"maxLength":20,"pattern":"([\\d+])[\\d ()/-]+"},"email":{"type":"string","minLength":0,"maxLength":70,"pattern":"^(?=.{1,64}@)[\\w-]+(\\.[\\w-]+)*@[^-][\\dA-Za-z-]+(\\.[\\dA-Za-z-]+)*(\\.[A-Za-z]{2,})$"},"company_name":{"type":"string","minLength":0,"maxLength":90},"postal_code":{"type":"string","minLength":0,"maxLength":10,"pattern":"[\\dA-Za-z]*"},"city":{"type":"string","minLength":0,"maxLength":34},"street":{"type":"string","minLength":0,"maxLength":33},"house_number":{"type":"string","minLength":0,"maxLength":9}},"required":["gender","name","telephone","fax","email","company_name","postal_code","city","street","house_number"],"description":"The data-section for the contact person which is responsible for feedback from the health insurance."}},"required":["start_work_incapacity"],"description":"The data to request an electronic certificate of incapacity for work (eAU).","examples":[{"start_work_incapacity":"2022-01-01"}]},"PutCustomDatevEmployeesEmployeeIdPreparePayrollParameterEmployeeId":{"type":"string","description":"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`)"},"PutCustomDatevEmployeesEmployeeIdPreparePayrollPositiveResponse":{"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"]},"PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody":{"type":"object","properties":{"payroll_run":{"type":"object","properties":{"date":{"description":"YYYY-MM-DDTHH:mm:ss.sssZ","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"}}},"required":["date"]},"hourly_payments":{"type":"array","items":{"type":"object","properties":{"hours":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Number of hours this employee has worked."},"lohnart":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The \"Lohnart\" (payment-type) in DATEV. Make sure a Lohnart is selected that actually supports hours."}},"required":["hours","lohnart"]},"description":"Add entries for all the hourly calculated supplements here. For example you can write \"Overtime\" or \"Work on Holidays\" (in hours here). Unfortunately, DATEV doens't allow showing a lable for the entries."},"fixed_payments":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308},"lohnart":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The \"Lohnart\" (payment-type) in DATEV. Make sure a Lohnart is selected that actually supports fixed payments (no hourly modifier)."}},"required":["amount","lohnart"]},"description":"Add entries for all the fixed supplements here. For example you can write \"Bonuses\" (in Euros here). Unfortunately, DATEV doens't allow showing a lable for the entries."},"custom_lodas":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"This amount value will be mapped to Datev \"Wert\" field."},"lohnart":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Choose a valid Lodas Lohnart."},"bearbeitungsschluessel":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"Choose a valid Lodas Bearbeitungsschlüssel. We list the valid Bearbeitungsschlüssel [here](https://storage.googleapis.com/kombo-assets/integrations/datev/lodas_bs.json)."}},"required":["amount","lohnart","bearbeitungsschluessel"]},"default":[],"description":"Add custom entries to the DATEV Lodas Standard Erfassungstabelle."}},"required":["payroll_run","hourly_payments","fixed_payments"]},"PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId":{"type":"string","description":"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`)"},"PutCustomDatevEmployeesEmployeeIdCompensationsPositiveResponse":{"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"]},"PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody":{"type":"object","properties":{"effective_date":{"description":"Date from which the submitted compensations should be valid. Please note that it might not be possible to set compensations for the past if the payroll was already run.","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"}},"compensations":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The amount that this employee will be paid."},"currency":{"type":"string","const":"EUR","description":"The currency in which the employee gets paid. Currently, only euro is supported as integrated systems only work with Euro."},"period":{"type":"string","enum":["HOUR","MONTH"],"description":"The period for which the specified amount is paid. Currently, integrated systems only support \"HOUR\" and \"MONTH\"."},"lohnart":{"type":"integer","format":"int64","minimum":1,"maximum":9999,"description":"The Lohnart that should be used for this compensation. If not specified, the default Lohnart that was requested in the connection flow will be used. Generally Lohnart is only available for monthly compensations."}},"required":["amount","currency","period"]}}},"required":["effective_date","compensations"]},"GetCustomDatevCheckWritePermissionPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"ready":{"type":"boolean"},"error":{"type":"string"}},"required":["ready"]},"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"]},"GetCustomDatevDataPushesPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"data_pushes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["GENERAL","PAYROLL"],"description":"Type of the executed data push."},"created_at":{"description":"Date when the push-data endpoint was called.","type":"string","format":"date-time","externalDocs":{"url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString"}},"upload_jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"file_name":{"type":"string"},"state":{"type":"string","enum":["FAILED","UPLOADED","IMPORTED","CORRUPTED","DELETED","AUTO_DELETED"],"description":"If we were not able to send the file to DATEV, we will set the state \"FAILED\". The other values are synced from DATEV for the respective import jobs."},"file":{"type":"string","description":"Actual content of the file."}},"required":["id","file_name","state","file"]},"description":"List of all the submitted files. This can include multiple files if data was edited for multiple months."}},"required":["id","type","created_at","upload_jobs"]}}},"required":["data_pushes"]}},"required":["status","data"]},"PostCustomDatevPushDataGeneralPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"content":{"type":"string"}},"required":["name","content"]}}},"required":["files"],"examples":[{"files":[{"name":"EXTF_Stammdaten.csv","content":"EXTF;700;21;Stammdaten;..."}]}]},"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"]},"PostCustomDatevPushDataGeneralRequestBody":{"type":"object"},"PostCustomDatevPushDataPayrollPositiveResponse":{"type":"object","properties":{"status":{"type":"string","const":"success"},"data":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"content":{"type":"string"}},"required":["name","content"]}}},"required":["files"],"examples":[{"files":[{"name":"EXTF_Bewegungsdaten.csv","content":"EXTF;700;21;Bewegungsdaten;..."}]}]},"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"]},"PostCustomDatevPushDataPayrollRequestBody":{"type":"object","properties":{"payroll_month":{"description":"Specify the month for which the payroll data should be submitted. The date must be specified as the first day of a month (e.g. 2022-12-01).","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"}}},"required":["payroll_month"]},"PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsParameterEmployeeId":{"type":"string","description":"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`)"},"PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsPositiveResponse":{"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"]},"PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody":{"type":"object","properties":{"supplement_code":{"type":"string","description":"The ID code of the supplement that you want to add to Silae."},"effective_date":{"description":"Date from which the submitted supplement should be active.","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"}},"element_amount":{"type":"number","format":"double","minimum":-1.7976931348623157e+308,"description":"The amount of the supplement if it requires a number."},"element_string":{"type":"string","description":"The string of the supplement if it requires a string."}},"required":["supplement_code","effective_date"]},"DataChangedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["data-changed"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"integration_id":{"type":"string","description":"The unique identifier of the integration."},"integration_tool":{"type":"string","description":"The name of the integrated tool (e.g., \"personio\", \"greenhouse\")."},"integration_category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"description":"The category of the integration (HRIS, ATS, ASSESSMENT, or LMS)."},"changed_models":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["hris_legal_entities","hris_locations","hris_employees","hris_absence_types","hris_absences","hris_employments","hris_teams","hris_time_off_balances","hris_timesheets","hris_employee_document_categories","hris_performance_reviews","hris_performance_review_cycles","hris_staffing_entities","ats_users","ats_jobs","ats_job_postings","ats_candidates","ats_application_stages","ats_applications","ats_screening_questions","ats_tags","ats_interviews","ats_offers","ats_rejection_reasons","ats_roles","lms_users","lms_course_providers","lms_skills","lms_courses","lms_course_revisions","lms_course_progressions","hris_join_employees_teams","hris_join_staffing_entities_locations","hris_join_staffing_entities_legal_entities","hris_join_staffing_entities_groups","ats_join_candidates_tags","ats_join_jobs_application_stages","ats_join_jobs_screening_questions","ats_join_user_job_role_assignments","ats_join_jobs_users","ats_join_users_roles","ats_join_interviews_users","lms_join_revisions_skills"],"description":"The name of the Kombo model or connection that changed."}},"required":["name"],"additionalProperties":false,"description":"A model or connection that has changed in the integration."},"description":"List of data models and connections for which one or more records were created, updated, or deleted."}},"required":["integration_id","integration_tool","integration_category","changed_models"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"ConnectionFlowFailedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["connection-flow-failed"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"integration_tool":{"type":"string","description":"The name of the integrated tool (e.g., \"personio\", \"greenhouse\")."},"integration_category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"description":"The category of the integration (HRIS, ATS, ASSESSMENT, or LMS)."},"end_user":{"type":"object","properties":{"organization_name":{"type":"string","description":"The name of the organization that owns the integration."},"creator_email":{"type":"string","nullable":true,"description":"The email address of the user who created the integration.","format":"email"},"origin_id":{"type":"string","nullable":true,"description":"The unique identifier of the organization in the integrated system."}},"required":["organization_name","creator_email","origin_id"],"additionalProperties":false,"description":"Information about the end user who created the integration."},"log_url":{"type":"string","format":"uri","description":"URL to view detailed logs for the operation."}},"required":["integration_tool","integration_category","end_user","log_url"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"IntegrationCreatedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["integration-created"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the newly created integration."},"tool":{"type":"string","description":"The name of the integrated tool."},"category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"description":"The category of the integration."},"end_user":{"type":"object","properties":{"organization_name":{"type":"string","description":"The name of the organization that owns the integration."},"creator_email":{"type":"string","nullable":true,"description":"The email address of the user who created the integration.","format":"email"},"origin_id":{"type":"string","nullable":true,"description":"The unique identifier of the organization in the integrated system."}},"required":["organization_name","creator_email","origin_id"],"additionalProperties":false,"description":"Information about the end user who created the integration."}},"required":["id","tool","category","end_user"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"IntegrationDeletedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["integration-deleted"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the deleted integration."},"tool":{"type":"string","description":"The name of the integrated tool."},"category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"description":"The category of the integration."},"end_user":{"type":"object","properties":{"organization_name":{"type":"string","description":"The name of the organization that owns the integration."},"creator_email":{"type":"string","nullable":true,"description":"The email address of the user who created the integration.","format":"email"},"origin_id":{"type":"string","nullable":true,"description":"The unique identifier of the organization in the integrated system."}},"required":["organization_name","creator_email","origin_id"],"additionalProperties":false,"description":"Information about the end user who created the integration."},"deleted_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the integration was deleted."}},"required":["id","tool","category","end_user","deleted_at"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"AssessmentOrderReceivedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["assessment:order-received"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the assessment order."},"package_id":{"type":"string","description":"The identifier of the assessment package."},"status":{"type":"string","enum":["OPEN","COMPLETED","CANCELLED","REJECTED"],"description":"The current status of the assessment order."},"integration_id":{"type":"string","description":"The unique identifier of the integration."},"candidate":{"type":"object","properties":{"remote_id":{"type":"string","nullable":true,"description":"The candidate's identifier in the integrated system."},"email":{"type":"string","description":"The candidate's email address.","format":"email"},"first_name":{"type":"string","nullable":true,"description":"The candidate's first name."},"last_name":{"type":"string","nullable":true,"description":"The candidate's last name."},"phone":{"type":"string","nullable":true,"description":"The candidate's phone number."}},"required":["email"],"additionalProperties":false,"description":"Information about the candidate taking the assessment."},"application":{"type":"object","properties":{"remote_id":{"type":"string","nullable":true,"description":"The application's identifier in the integrated system."}},"additionalProperties":false,"description":"Information about the job application."},"job":{"type":"object","properties":{"remote_id":{"type":"string","nullable":true,"description":"The job's identifier in the integrated system."},"name":{"type":"string","nullable":true,"description":"The job title."},"location":{"type":"object","properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"description":"Contains the ISO2 country code if possible. If not, it contains the original value."},"raw":{"type":"string","nullable":true,"description":"If we have address data, this is filled with the raw address string."},"state":{"type":"string","nullable":true},"street_1":{"type":"string","nullable":true,"description":"If we can parse the address data, this field contains the first part of the street information."},"street_2":{"type":"string","nullable":true},"zip_code":{"type":"string","nullable":true}},"additionalProperties":false,"nullable":true,"description":"The job location information."},"hiring_team":{"type":"array","items":{"type":"object","properties":{"remote_id":{"type":"string","description":"The team member's identifier in the integrated system."},"email":{"type":"string","nullable":true,"description":"The team member's email address."},"first_name":{"type":"string","nullable":true,"description":"The team member's first name."},"last_name":{"type":"string","nullable":true,"description":"The team member's last name."},"hiring_team_roles":{"type":"array","items":{"type":"string","enum":["RECRUITER","HIRING_MANAGER"]},"description":"Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema."}},"required":["remote_id","email","first_name","last_name","hiring_team_roles"],"additionalProperties":false,"description":"A member of the hiring team."},"description":"The hiring team allows you to provision users into your system who can access the job and its applications."}},"required":["hiring_team"],"additionalProperties":false,"description":"Information about the job posting."}},"required":["id","package_id","status","integration_id","candidate","application","job"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"InlineAssessmentOrderReceivedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["inline-assessment:order-received"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the assessment order."},"package_id":{"type":"string","description":"The identifier of the assessment package."},"status":{"type":"string","enum":["OPEN","COMPLETED","CANCELLED","REJECTED"],"description":"The current status of the assessment order."},"integration_id":{"type":"string","description":"The unique identifier of the integration."},"candidate":{"type":"object","properties":{"remote_id":{"type":"string","nullable":true,"description":"The candidate's identifier in the integrated system."},"email":{"type":"string","description":"The candidate's email address.","format":"email"},"first_name":{"type":"string","nullable":true,"description":"The candidate's first name."},"last_name":{"type":"string","nullable":true,"description":"The candidate's last name."},"phone":{"type":"string","nullable":true,"description":"The candidate's phone number."}},"required":["email"],"additionalProperties":false,"description":"Information about the candidate taking the assessment."},"application":{"type":"object","properties":{"remote_id":{"type":"string","nullable":true,"description":"The application's identifier in the integrated system."}},"additionalProperties":false,"description":"Information about the job application."},"job":{"type":"object","properties":{"remote_id":{"type":"string","nullable":true,"description":"The job's identifier in the integrated system."},"name":{"type":"string","nullable":true,"description":"The job title."},"location":{"type":"object","properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"description":"Contains the ISO2 country code if possible. If not, it contains the original value."},"raw":{"type":"string","nullable":true,"description":"If we have address data, this is filled with the raw address string."},"state":{"type":"string","nullable":true},"street_1":{"type":"string","nullable":true,"description":"If we can parse the address data, this field contains the first part of the street information."},"street_2":{"type":"string","nullable":true},"zip_code":{"type":"string","nullable":true}},"additionalProperties":false,"nullable":true,"description":"The job location information."},"hiring_team":{"type":"array","items":{"type":"object","properties":{"remote_id":{"type":"string","description":"The team member's identifier in the integrated system."},"email":{"type":"string","nullable":true,"description":"The team member's email address."},"first_name":{"type":"string","nullable":true,"description":"The team member's first name."},"last_name":{"type":"string","nullable":true,"description":"The team member's last name."},"hiring_team_roles":{"type":"array","items":{"type":"string","enum":["RECRUITER","HIRING_MANAGER"]},"description":"Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema."}},"required":["remote_id","email","first_name","last_name","hiring_team_roles"],"additionalProperties":false,"description":"A member of the hiring team."},"description":"The hiring team allows you to provision users into your system who can access the job and its applications."}},"required":["hiring_team"],"additionalProperties":false,"description":"Information about the job posting."}},"required":["id","package_id","status","integration_id","candidate","application","job"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"IntegrationStateChangedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["integration-state-changed"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"integration_tool":{"type":"string","description":"The name of the integrated tool (e.g., \"personio\", \"greenhouse\")."},"integration_id":{"type":"string","description":"The unique identifier of the integration."},"integration_category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"description":"The category of the integration (HRIS, ATS, ASSESSMENT, or LMS)."},"end_user":{"type":"object","properties":{"organization_name":{"type":"string","description":"The name of the organization that owns the integration."},"creator_email":{"type":"string","nullable":true,"description":"The email address of the user who created the integration.","format":"email"},"origin_id":{"type":"string","nullable":true,"description":"The unique identifier of the organization in the integrated system."}},"required":["organization_name","creator_email","origin_id"],"additionalProperties":false,"description":"Information about the end user who created the integration."},"qa_status":{"type":"string","enum":["PENDING","FAILED","PASSED"],"description":"The quality assurance status of the integration."},"setup_status":{"type":"string","enum":["INCOMPLETE","FINAL_SYNC_PENDING","COMPLETED"],"description":"The current status of an integration that has filtering, field mapping features or required setup steps."},"state":{"type":"string","enum":["ACTIVE","INVALID","INACTIVE"],"description":"The current state of the integration."},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the integration state was last updated."}},"required":["integration_tool","integration_id","integration_category","end_user","qa_status","setup_status","state","updated_at"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"AiApplyApplicationStatusUpdatedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["ai-apply-application-status-updated"],"description":"Type of the webhook event"},"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."},"job_posting_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."},"status":{"type":"string","enum":["SUBMITTED","DUPLICATE","PENDING","FAILED"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","job_posting_id","status","created_at","updated_at"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"AiApplyJobPostingStatusUpdatedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["ai-apply-job-posting-status-updated"],"description":"Type of the webhook event"},"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."},"career_site":{"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."},"label":{"type":"string"}},"required":["id","label"],"additionalProperties":false},"url":{"type":"string"},"job_code":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"archived_at":{"type":"string","format":"date-time","nullable":true,"description":"The date and time the job posting was archived. You can only send applications if the job posting is not archived."},"archived_reason":{"type":"string","enum":["JOB_POSTING_TAKEN_OFFLINE","MANUAL_ARCHIVE","REMOVED_FROM_JOB_FEED"],"nullable":true},"availability":{"type":"string","enum":["APPLYABLE","PENDING","ARCHIVED","UNAVAILABLE"],"description":"The status of the job posting. You can only send applications if the job posting is \"APPLYABLE\"."}},"required":["id","career_site","url","job_code","created_at","updated_at","archived_at","archived_reason","availability"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"SyncFinishedWebhookPayload":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this webhook event"},"type":{"type":"string","enum":["sync-finished"],"description":"Type of the webhook event"},"data":{"type":"object","properties":{"sync_id":{"type":"string","description":"The unique identifier of the sync operation."},"sync_state":{"type":"string","description":"The final state of the sync operation (e.g., `SUCCEEDED`, `FAILED`)."},"sync_started_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the sync operation started."},"sync_ended_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when the sync operation completed."},"sync_duration_seconds":{"type":"integer","minimum":0,"description":"Duration of the sync operation in seconds."},"integration_id":{"type":"string","description":"The unique identifier of the integration."},"integration_tool":{"type":"string","description":"The name of the integrated tool (e.g., \"personio\", \"greenhouse\")."},"integration_category":{"type":"string","enum":["HRIS","ATS","ASSESSMENT","LMS"],"description":"The category of the integration (HRIS, ATS, ASSESSMENT, or LMS)."},"end_user":{"type":"object","properties":{"organization_name":{"type":"string","description":"The name of the organization that owns the integration."},"creator_email":{"type":"string","nullable":true,"description":"The email address of the user who created the integration.","format":"email"},"origin_id":{"type":"string","nullable":true,"description":"The unique identifier of the organization in the integrated system."}},"required":["organization_name","creator_email","origin_id"],"additionalProperties":false,"description":"Information about the end user who created the integration."},"log_url":{"type":"string","format":"uri","description":"URL to view detailed logs for the operation."}},"required":["sync_id","sync_state","sync_started_at","sync_ended_at","sync_duration_seconds","integration_id","integration_tool","integration_category","end_user","log_url"],"additionalProperties":false}},"required":["id","type","data"],"additionalProperties":false},"BulkImportJobPostingLocation":{"type":"object","description":"The location of the job posting","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code","example":"US"},"postal_code":{"type":"string","description":"Postal/ZIP code","example":"94115"}},"required":["country"]},"BulkImportJobPostingInput":{"type":"object","description":"A single job posting entry in the NDJSON stream","properties":{"url":{"type":"string","format":"uri","description":"The URL of the job posting to parse","example":"https://careers.acme.com/jobs/fullstack-engineer-14102"},"career_site_label":{"type":"string","description":"Label of the career site to group this posting under. Career sites are automatically created if they do not exist.","example":"ACME Corp Careers"},"job_code":{"type":"string","description":"Optional job code to associate with the posting","example":"ENG-123"},"location":{"anyOf":[{"$ref":"#/components/schemas/BulkImportJobPostingLocation"},{"type":"null"}],"description":"The location of the job. When omitted, existing location is preserved. Pass null to explicitly clear."}},"required":["url","career_site_label"]},"BulkImportResponse":{"type":"object","description":"Response from the bulk import endpoint","properties":{"status":{"type":"string","enum":["success"]},"data":{"type":"object","properties":{"created":{"type":"integer","description":"Number of new job postings created"},"processed":{"type":"integer","description":"Number of job postings processed"},"archived":{"type":"integer","description":"Number of job postings archived (not included in this import)"}},"required":["created","processed","archived"]}},"required":["status","data"],"example":{"status":"success","data":{"created":150,"processed":197,"archived":10}}}},"responses":{"ErrorResponseGeneral":{"description":"The standard error response with just the platform error codes.","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.INTEGRATION_NOT_FOUND","PLATFORM.INPUT_INVALID","PLATFORM.UNKNOWN_ERROR","PLATFORM.IP_NOT_WHITELISTED","PLATFORM.AUTHENTICATION_INVALID","PLATFORM.TASK_TIMED_OUT"],"example":"PLATFORM.RATE_LIMIT_EXCEEDED","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}}}}}}},"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.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}}}}}}},"ErrorResponseATS":{"description":"The standard error response with the error codes for the ATS 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.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","ATS.JOB_CLOSED","ATS.APPLICATION_ALREADY_EXISTS"],"example":"ATS.JOB_CLOSED","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}}}}}}},"ErrorResponseAiApply":{"description":"The standard error response with the error codes for AI Apply.","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.INTEGRATION_NOT_FOUND","PLATFORM.INPUT_INVALID","PLATFORM.UNKNOWN_ERROR","PLATFORM.IP_NOT_WHITELISTED","PLATFORM.AUTHENTICATION_INVALID","PLATFORM.TASK_TIMED_OUT","REMOTE.SERVICE_UNAVAILABLE","REMOTE.RATE_LIMIT_EXCEEDED","REMOTE.INPUT_INVALID","REMOTE.UNKNOWN_HTTP_ERROR","AI_APPLY.JOB_FEED_IMPORT_ALREADY_RUNNING","AI_APPLY.JOB_FEED_IMPORT_TIMED_OUT"],"example":"ATS.JOB_CLOSED","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}}}}}}}},"parameters":{},"examples":{},"requestBodies":{},"headers":{},"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","description":"Create an API key on the [Secrets](https://app.kombo.dev/secrets) page in the Kombo dashboard."}},"links":{},"callbacks":{}},"tags":[{"name":"General"},{"name":"Kombo Connect","description":"Endpoints for Kombo Connect, our end-user-facing flow for setting up new integrations."},{"name":"Unified HRIS API","description":"Unified endpoints to access all the HR concepts you might need."},{"name":"Unified ATS API","description":"Unified endpoints to access all the ATS concepts you might need."},{"name":"Unified ATS (Assessment & Background Check) API","description":"Unified endpoints to operate Assessments and Background Checks for many applicant tracking systems."},{"name":"Unified LMS API","description":"Unified endpoints to access all the LMS concepts you might need."},{"name":"AI Apply","description":"Endpoints for AI-powered job application features."},{"name":"Custom Endpoints","description":"Custom integration-specific endpoints."}],"servers":[{"url":"https://api.kombo.dev/v1","description":"Kombo EU API"},{"url":"https://api.us.kombo.dev/v1","description":"Kombo US API"}],"security":[{"ApiKey":[]}],"webhooks":{"data-changed":{"post":{"summary":"Data changed","operationId":"webhookDataChangedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataChangedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"connection-flow-failed":{"post":{"summary":"Connection flow failed","operationId":"webhookConnectionFlowFailedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionFlowFailedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"integration-created":{"post":{"summary":"Integration created","operationId":"webhookIntegrationCreatedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationCreatedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"integration-deleted":{"post":{"summary":"Integration deleted","operationId":"webhookIntegrationDeletedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationDeletedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"assessment:order-received":{"post":{"summary":"Assessment: Order received","description":"This event is triggered when a new assessment or background check order is created for a candidate within your customer's ATS.","operationId":"webhookAssessmentOrderReceivedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentOrderReceivedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"inline-assessment:order-received":{"post":{"summary":"Inline assessment: Order received","description":"This event is triggered when a candidate reaches the inline assessment step of their application process.","operationId":"webhookInlineAssessmentOrderReceivedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InlineAssessmentOrderReceivedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"integration-state-changed":{"post":{"summary":"Integration state changed","operationId":"webhookIntegrationStateChangedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationStateChangedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"ai-apply-application-status-updated":{"post":{"summary":"AI Apply: Application status updated","operationId":"webhookAiApplyApplicationStatusUpdatedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiApplyApplicationStatusUpdatedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"ai-apply-job-posting-status-updated":{"post":{"summary":"AI Apply: Job posting status updated","operationId":"webhookAiApplyJobPostingStatusUpdatedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiApplyJobPostingStatusUpdatedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}}}},"sync-finished":{"post":{"summary":"Sync finished","operationId":"webhookSyncFinishedWebhookPayload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncFinishedWebhookPayload"}}}},"parameters":[{"name":"X-Kombo-Signature","in":"header","required":true,"description":"HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature.","schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}},"deprecated":true}}}}