{"openapi":"3.1.0","info":{"title":"Kombo API","version":"1.0.0"},"paths":{"/check-api-key":{"get":{"operationId":"GetCheckApiKey","summary":"Check API key","description":"Check whether your API key is working properly.","tags":["General"],"responses":{"200":{"description":"GET /check-api-key Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCheckApiKeyPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"environment_id":"2Uev1YUTqLFdvMPD3Jtrg2FX","customer_id":"2Uev1YUTqLFdvMPD3Jtrg2FX"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/force-sync":{"post":{"operationId":"PostForceSync","summary":"Trigger sync","description":"Trigger a sync for a specific integration.\n\nPlease note that it is **not** necessary nor recommended to call this endpoint periodically on your side. Kombo already performs periodic syncs for you and you should only trigger syncs yourself in special cases (like when a user clicks on a \"Sync\" button in your app).","tags":["General"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"workday:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /force-sync Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostForceSyncRequestBody"}}}},"responses":{"200":{"description":"POST /force-sync Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostForceSyncPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"already_queued":false,"sync_id":"119ihtp91nA3dqRFiV67nXS6","type":"DELTA"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/passthrough/{tool}/{api}":{"post":{"operationId":"PostPassthroughToolApi","summary":"Send passthrough request","description":"Send a request to the specified integration's native API.\n\nAt Kombo we put a lot of work into making sure that our unified API covers all our customers' use cases and that they never have to think about integration-specific logic again. There are cases, however, where our customers want to build features that are very integration-specific. That's where this endpoint comes in.\n\nPass in details about the request you want to make to the integration's API and we'll forward it for you. We'll also take care of setting the right base URL and authenticating your requests.\n\nTo get started, please pick the relevant API (some tools provide multiple to due different base URLs or authentication schemes) from the table below and pass in the `{tool}/{api}` identifier as part of the path.\n\n|Integration|`{tool}/{api}`|Description|\n|---|---|---|\n|360Learning|`360learning/v2`|360Learning [API v2](https://360learning.readme.io/docs). We automatically handle authentication and use `https://app.360learning.com/api/v2/` as the base URL.|\n|a3innuva Nómina|`a3innuvanomina/laboral`|a3innuva Nómina API [docs](https://a3developers.wolterskluwer.es/). Requests are automatically authenticated using OAuth access tokens (refreshed when needed). Base URL: `https://a3api.wolterskluwer.es/Laboral/api`.|\n|Abacus Umantis|`abacusumantis/v1`|[Umantis API v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We automatically authenticate all requests and use `https://\\{subdomain\\}.umantis.com/api/v1` as the base URL.|\n|Abacus|`abacus/api`|Abacus [REST API](https://apihub.abacus.ch/). We automatically authenticate all requests and use `https://\\{\\{abacusUrl\\}\\}/api/entity/v1/mandants/\\{\\{mandantId\\}\\}` as the base URL.|\n|Absence.io|`absenceio/v2`|Absence.io [API](https://docs.absence.io/). We automatically authenticate all requests and use `https://app.absence.io/api/v2` as the base URL.|\n|ADP Workforce Now|`adpworkforcenow/default`|[ADP Workforce Now API v2](https://developers.adp.com/build/api-explorer/hcm-offrg-wfn). We automatically authenticate all requests and use the correct subdomain.|\n|AFAS Software|`afas/api`|AFAS' [API](https://connect.afas.nl/rest/get). We automatically authenticate all requests and use `https://\\{domain\\}/ProfitRestServices` as the base URL.|\n|AlexisHR|`alexishr/v1`|[AlexisHR's v1 API](https://docs.alexishr.com/) We automatically authenticate all requests and use `https://\\{subdomain\\}.alexishr.com` as base URL.|\n|ApplicantStack|`applicantstack/api`|ApplicantStack's [API](https://helpas.payrollservers.info/s/article/API-Integration-Guide). We automatically authenticate all requests and use `https://\\{subdomain\\}.applicantstack.com/api/` as the base URL.|\n|Apploi|`apploi/rest-api`|The [Apploi API](https://integrate.apploi.com/). We automatically authenticate all requests and use `https://partners.apploi.com/` as the base URL.|\n|Ashby|`ashby/v1`|Ashby's [V1 API](https://developers.ashbyhq.com/reference/introduction). We automatically authenticate all requests with the provided credentials and use `https://api.ashbyhq.com` as the base URL. Please note that Ashby uses an RPC-style API. Please check [the Ashby API documentation](https://developers.ashbyhq.com/reference/introduction) for details on how to use it.|\n|Asymbl|`asymbl/v63`|We use `https://\\{subdomain\\}.my.salesforce.com` as the base URL. Find the official docs [here](https://asymblinc.github.io/ats/ats.html).|\n|Avature|`avature/custom-api`|Avatures's Custom API. Call `Get /openapi` to retrieve the specific custom API schema. We automatically authenticate all requests and use the instance specific custom API URL as the base URL.|\n|Avionté|`avionte/front-office-v1`|Avionte's API. We automatically authenticate all requests and use `https://api.avionte.com/front-office/v1` as the base URL. Documentation for the BOLD Front Office API: https://developer.avionte.com/reference/get-all-talent-tags|\n|BambooHR|`bamboohr/v1`|BambooHR's [API](https://documentation.bamboohr.com/reference/get-employee). We automatically authenticate all requests using the customer credentials `https://api.bamboohr.com/api/gateway.php/\\{subdomain\\}/v1` as the base URL.|\n|BITE|`bite/v1`|[Bite's v1 API](https://api.b-ite.io/docs/#/). We automatically authenticate all requests and use 'https://api.b-ite.io/v1' as base URL.|\n|BoondManager|`boondmanager/api`|BoondManager [REST API](https://ui.boondmanager.com/administrator/developer/apisandbox). We automatically authenticate all requests and use `https://ui.boondmanager.com/api` as the base URL.|\n|Breezy HR|`breezyhr/v3`|[BreezyHR's v3 API](https://developer.breezy.hr/reference/overview). We automatically authenticate all requests and use \"https://api.breezy.hr/v3/\" as the base URL.|\n|Bullhorn|`bullhorn/default`|[Bullhorn's API](https://bullhorn.github.io/rest-api-docs/index.html). We automatically use the right `https://rest.bullhornstaffing.com/rest-services/\\{corpToken\\}` base URL.|\n|Carerix|`carerix/api`|Carerix [REST API](https://docs.carerix.io/rest/introduction). We automatically authenticate all requests and use `https://api.carerix.com` as the base URL. Please note that Carerix uses XML for request and response bodies.|\n|CEGID TalentSoft Customer|`talentsoftcustomer/v1`|Cegid Talentsoft Recruiting FrontOffice API: [API Documentation](https://developers.cegid.com/api-details#api=cegid-talentsoft-recruiting-frontoffice) We automatically authenticate all requests and use `https://\\{customer_subdomain\\}.talent-soft.com/api/v1` as the base URL.|\n|CEGID TalentSoft FrontOffice|`talentsoft/v2`|Cegid Talentsoft Recruiting FrontOffice [API](https://developers.cegid.com/api-details). We automatically authenticate all requests using the provided credentials and use `https://\\{domain\\}/api/v2` as the base URL.|\n|Ceipal|`ceipal/v1`|We use `https://api.ceipal.com/v1` as the base URL. Find the official docs [here](https://developer.ceipal.com/ceipal-ats-version-one/ceipal-ats-v1-api-reference).|\n|Cezanne HR|`cezannehr/dataservice`|[CezanneHR's v7 dataservice API](https://api.cezannehr.com/).We automatically authenticate all requests and use the base URL `https://subdomain.cezanneondemand.com/cezanneondemand/v7/dataservice.svc`|\n|Compleet|`compleetpitcher/pitcher`|Compleet's Pitcher API. We automatically authenticate all requests and use the configured base URL.|\n|Connexys By Bullhorn|`connexys/api`|[Connexy's API](https://api.conexsys.com/client/v2/docs/#section/Overview). We automatically authenticate all requests and use `https://\\{connexys_domain\\}/` as the base URL.|\n|Cornerstone OnDemand|`cornerstoneondemand/learning`|Cornerstone's [Learning API](https://csod.dev/reference/learning/). We automatically authenticate all requests using the client ID and secret and use `https://\\{your_domain\\}.csod.com/services/api` as the base URL.|\n|Cornerstone OnDemand|`cornerstoneondemand/recruiting`|Cornerstone's [Recruiting API](https://csod.dev/reference/recruiting/). We automatically authenticate all requests using the client ID and secret and use `https://\\{your_domain\\}.csod.com/services/api` as the base URL.|\n|Coveto (legacy SOAP API)|`coveto/public`|We automatically use `https://\\{subdomain\\}.coveto.de` as the base URL.|\n|Coveto (REST API)|`covetorest/v1`|We automatically use `https://\\{subdomain\\}.coveto.de/public/api/v1` as the base URL. https://demo.coveto.de/swagger-ui/index.html#/|\n|Crelate|`crelate/api`|Crelate [REST API](https://app.crelate.com/api3/docs/index.html). We automatically authenticate all requests and use `https://app.crelate.com/api3` as the base URL.|\n|d.vinci admin|`dvinciadmin/odata-api`|[DVinci ODATA API](https://dvinci.freshdesk.com/en/support/solutions/articles/75000059523-odata-reporting-api).|\n|d.vinci admin|`dvinciadmin/rest-api`|[DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html).|\n|d.vinci|`dvinci/apply-api`|The [DVinci Apply API](https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html). All requests are authenticated by Kombo and use `https://\\{dvinci_domain\\}/p/\\{portal_path\\}/` as the base URL.|\n|d.vinci|`dvinci/rest-api`|The [DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html). All requests are authenticated by Kombo and use `https://\\{dvinci_domain\\}/restApi/` as the base URL.|\n|DATEV LODAS|`datev/eau`|DATEV's [eau](https://developer.datev.de/en/product-detail/eau-api/1.0.0/overview) API. We automatically authenticate all requests and use `https://eau.api.datev.de/\\{platform|platform-sandbox\\}/v1/clients/\\{client-id\\}/` as the base URL.|\n|DATEV|`datevhr/eau`|DATEV's [eau](https://developer.datev.de/en/product-detail/eau-api/1.0.0/overview) API. We automatically authenticate all requests and use `https://eau.api.datev.de/\\{platform|platform-sandbox\\}/v1/clients/\\{client-id\\}/` as the base URL.|\n|DATEV|`datevhr/hr-exports`|DATEV's [hr-exports](https://developer.datev.de/en/product-detail/hr-exports/1.0.0/overview). We automatically authenticate all requests and use `https://hr-exports.api.datev.de/\\{platform|platform-sandbox\\}/v1/clients/\\{client-id\\}` as the base URL.|\n|DATEV|`datevhr/hr:payrollreports`|DATEV's [hr:payrollreports](https://developer.datev.de/en/product-detail/hr-payrollreports/2.0.0/overview) API. We automatically authenticate all requests and use `https://hr-payrollreports.api.datev.de/\\{platform|platform-sandbox\\}/v1/clients/\\{client-id\\}/` as the base URL.|\n|Dayforce|`dayforce/V1`|[Dayforce's API](https://developers.dayforce.com/Build/Home.aspx). We automatically authenticate all requests and use `\\{\\{baseUrl\\}\\}/Api/\\{\\{clientNamespace\\}\\}/V1` as the base URL|\n|Deel|`deel/api`|Deel's [API](https://developer.deel.com/reference/). We automatically authenticate all requests using the provided credentials and use `https://\\{api_domain\\}/rest` as the base URL.|\n|Digital Recruiters|`digitalrecruiters/api`|Cegid Digital Recruiters [Talent Acquisition API](https://cegid-hr-developers.talentsoft.net/docs/tutorial-basics/Talent%20Acquisition/Getting%20Started). We automatically authenticate all requests by replacing `:token` in the request URL with your configured access token and use your configured Digital Recruiters domain as the base URL.|\n|Eightfold|`eightfold/api`|Eightfold's [API](https://apidocs.eightfold.ai/). We automatically authenticate all requests and use `https://apiv2.\\{region\\}/api/v2/core/` as the base URL.|\n|Employment Hero|`employmenthero/default`|EmploymentHero [API](https://developer.employmenthero.com/api-references/#icon-book-open-introduction). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.employmenthero.com/api` as the base URL.|\n|Eploy|`eploy/api`|Eploy's [API](https://www.eploy.com/resources/developers/api-documentation/). We automatically authenticate all requests and use `https://\\{subdomain\\}.eploy.net/api` as the base URL.|\n|eRecruiter|`erecruiter/api`|[eRecruiter's API](https://api.erecruiter.net/swagger/ui/index). We automatically authenticate all requests and use `https://\\{domain\\}/Api` as the base URL.|\n|Eurécia|`eurecia/api`|Eurécia [REST API](https://api.eurecia.com/eurecia/fw/swagger/index.html#/) We automatically authenticate all requests and use `https://\\{domain\\}/eurecia/rest` as the base URL.|\n|Factorial|`factorial/api`|Factorial's [API](https://apidoc.factorialhr.com/). We automatically authenticate all requests and use `https://api.factorialhr.com/api` or `https://api.demo.factorial.dev/api` as the base URL, depending on the connected instance.|\n|Flatchr|`flatchr/api`|Flatchr's [API](https://developers.flatchr.io/docs/getting_started). We automatically authenticate all requests and use `https://api.flatchr.io` as the base URL.|\n|Flatchr|`flatchr/career`|Flatchr's [Career API](https://developers.flatchr.io/docs/QuickStart/Candidats/Creer_un_candidat). We automatically authenticate all requests and use `https://career.flatchr.io` as the base URL.|\n|Fountain|`fountain/v2`|Fountain's [Hire API](https://developer.fountain.com/reference/get_v2-applicants). We automatically authenticate all requests and use `https://api.fountain.com/v2` as the base URL.|\n|Fourth|`fourth/uk-employee`|Fourth [UK Employee API](https://developer.fourth.com/en-gb/docs/uk-employee-api/reference) We automatically authenticate all requests and use `https://api.fourth.com/hr/organisations/\\{organisation_id\\}/` as the base URL. We also enforce the required query params for all requests.|\n|Gem|`gem/api`|Gem's [ATS API](https://api.gem.com/ats/v0/reference) We automatically authenticate all requests.|\n|Google Workspace|`googleworkspace/admin`|[Googles's API](https://developers.google.com/admin-sdk/directory/reference/rest). We automatically authenticate all requests and use 'https://admin.googleapis.com' as the base URL.|\n|Google Workspace|`googleworkspace/people`|[Googles's API](https://developers.google.com/people/api/rest). We automatically authenticate all requests and use 'https://people.googleapis.com' as the base URL.|\n|Greenhouse Job Board|`greenhousejobboard/boards-api`|[Greenhouse Job Board API](https://developers.greenhouse.io/job-board). We automatically authenticate all requests and use 'https://boards-api.greenhouse.io/v1/boards/\\{job_board_token\\}' as the base URL. Optionally, you can provide a custom job_board_token to use a different job board.|\n|Greenhouse|`greenhouse/harvest-v2`|Greenhouse [Harvest API v2](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v2` as the base URL.|\n|Greenhouse|`greenhouse/harvest`|Greenhouse [Harvest API v1](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v1` as the base URL.|\n|Hailey HR|`haileyhr/api`|Hailey HR's [API](https://api.haileyhr.app/docs/index.html). We automatically authenticate all requests using the provided credentials and use `https://api.haileyhr.app` as the base URL.|\n|Hansalog|`hansalog/vision`|Hansalog's [Vision API](https://hansalog-vision.document360.io/docs/). We automatically authenticate all requests and use `https://\\{subdomain\\}.hansalog-cloud.de/vision` as the base URL.|\n|Haufe Umantis|`umantis/v1`|[Umantis API v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We automatically authenticate all requests and use `https://\\{subdomain\\}.umantis.com/api/v1` as the base URL.|\n|HeavenHR|`heavenhr/v2`|[HeavenHR API](https://api.heavenhr.com/). We automatically authenticate all requests using the provided credentials and use `https://api.heavenhr.com/api/v2` as the base URL.|\n|Heyrecruit|`heyrecruit/v2`|[Heyrecruit's v2 API](https://documenter.getpostman.com/view/23241256/2s9YysBLcf#47e271ac-47c8-4c75-9cc6-b8c506e9dad6). We automatically authenticate all requests using the client ID and secret and use `https://app.heyrecruit.de/api/v2` as the base URL.|\n|HiBob|`hibob/docs`|This passthrough is only used for fetching employee documents in HiBob. It is present as a workaround while we are working on a new endpoint for fetching documents in HRIS. It should not be used for any other purpose. We automatically authenticate all requests using the service user credentials and use `https://app.hibob.com/api/docs/employees/` as the base URL.|\n|HiBob|`hibob/hire`|[HiBob's Hire API](https://apidocs.hibob.com/docs/how-to-integrate-with-ats-hire-api). We automatically authenticate all requests using the hire service user credentials. The base URL is configured during the integration setup.|\n|HiBob|`hibob/v1`|[HiBob's v1 API](https://apidocs.hibob.com/reference/get_people). We automatically authenticate all requests using the service user credentials (or, for old integrations, the API key) and use `https://api.hibob.com/v1` as the base URL.|\n|HoorayHR|`hoorayhr/api`|[HoorayHR API](https://api.hoorayhr.io/documentation/). We automatically authenticate all requests and use `https://api.hoorayhr.io` as the base URL.|\n|HR Office|`hroffice/soap`|[HROffice SOAP API](https://api.hroffice.nl/HROfficeCoreService.asmx). We automatically authenticate all requests and wrap them in a SOAP envelope. Build the request `Body` with the raw XML parameters for your operation (e.g., `\\1\\`). Use `/` as your `path`. Set your `method` to `POST`. You need to specify the `api_options` object and set `operation_name` to the SOAP operation you want to call (e.g., `GetAllJobByLanguage`).|\n|HR WORKS|`hrworks/v2`|HRWorks's v2 [API](https://developers.hrworks.de/2.0/endpoints). We automatically authenticate all requests using the customer credentials.|\n|HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g., https://`\\{base_url\\}`/ or https://`\\{subdomain\\}.hr4you.org`/).|\n|Humaans|`humaans/api`|Humaans' [API](https://docs.humaans.io/api/). We automatically authenticate all requests using the API key and use `https://app.humaans.io/api` as the base URL.|\n|iCIMS|`icims/default`|[iCIMS Default API](https://developer-community.icims.com/). We automatically authenticate all requests and use `https://api.icims.com/customers/\\{customer_id\\}` as the base url.|\n|InRecruiting by Zucchetti|`inrecruiting/default`|[inRecruiting's v3 API](https://inrecruiting.intervieweb.it/api-docs/). We automatically authenticate all requests and use the customers domain as base URL|\n|Insperity|`insperity/api`|Insperity [APIs](https://developer.insperity.com/) We automatically authenticate all requests and use `https://api.insperity.com` as the base URL. For staging environments, we use `https://apistage.insperity.com`. Note that all requests require the company ID to be specified in the path or body.|\n|IRIS Cascade|`iriscascade/v2`|IRIS Cascade HR [API](https://swagger.hrapi.co.uk/). We automatically authenticate all requests using the provided credentials and use `https://api.iris.co.uk/hr/v2` as the base URL.|\n|JazzHR|`jazzhr/v1`|[JazzHR's v1 API](https://www.resumatorapi.com/v1/#!`).We automatically authenticate all requests and use \"https://api.resumatorapi.com/v1/\" as the base URL.|\n|JobDiva|`jobdiva/api`|We automatically authenticate all requests and use `https://api.jobdiva.com` as the base URL.|\n|Jobvite|`jobvite/api`|We automatically authenticate all requests and use 'https://api.jobvite.com/api/v2' as the base URL.|\n|Jobvite|`jobvite/v2`|We use `https://api.jobvite.com/api/v2` as the base URL. Find the official docs [here](https://help.jobvite.com/hc/en-us/articles/8870636608925-Jobvite-API).|\n|Jobylon|`jobylon/feed`|The [Jobylon Feed API](https://developer.jobylon.com/feed-api/). We automatically authenticate all requests and use `https://\\{subdomain\\}.jobylon.com/feeds/\\{job_hash\\}` as the base URL.|\n|Jobylon|`jobylon/push`|The [Jobylon Push API](https://developer.jobylon.com/push-api-and-webhooks/). We automatically authenticate all requests and use `https://\\{subdomain\\}.jobylon.com/p1` as the base URL.|\n|JOIN|`join/v2`|Join's [V2 API](https://docs.join.com/reference/getting-started). We automatically authenticate all requests and use `https://api.join.com/v2` as the base URL.|\n|Kenjo|`kenjo/api`|Kenjo's [API](https://kenjo.readme.io/reference/generate-the-api-key). We automatically authenticate all requests using the API key and use `https://api.kenjo.io/` as the base URL.|\n|Lattice Talent|`latticetalent/talent`|Lattice's [Talent API](https://developers.lattice.com/reference/introduction). We automatically authenticate all requests using API key credentials with `https://api.latticehq.com` as the base URL.|\n|Lattice|`lattice/passthrough`|Lattice's [API](https://developers.lattice.com/v2/docs/base-url-1). We automatically authenticate all requests using OAuth credentials with `https://api.latticehq.com` as the base URL.|\n|Lattice|`lattice/talent`|Lattice's [Talent API](https://developers.lattice.com/docs/introduction-1). We automatically authenticate all requests using OAuth credentials with `https://api.latticehq.com` as the base URL.|\n|Laura|`laura/api`|We automatically authenticate all requests and use `https://\\{subdomain\\}.rekrytointi.com/api/v1.2` as the base URL.|\n|Leapsome|`leapsome/scim`|Leapsome [SCIM API](https://api.leapsome.com/scim/v1/api-docs/). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.leapsome.com/scim/v1` as the base URL.|\n|Leapsome|`leapsome/v1`|Leapsome [API](https://api.leapsome.com/v1/api-docs/). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.leapsome.com/v1` as the base URL.|\n|Lever|`lever/v1`|[Lever's v1 API](https://hire.lever.co/developer/documentation). We automatically authenticate all requests using the partner credentials which have been configured in the Lever tool settings (this uses Kombo's partner credentials by default).|\n|LinkedIn Learning|`linkedinlearning/v2`|LinkedIn Learning [API v2](https://learn.microsoft.com/en-us/linkedin/learning/). We automatically handle authentication and use `https://api.linkedin.com` as the base URL.|\n|Loxo|`loxo/v1`|[Loxo's API](https://loxo.readme.io/reference/loxo-api). We automatically authenticate all requests and use 'https://app.loxo.co/api/\\{agency_slug\\}' as base URL.|\n|Lucca|`lucca/api`|[Luccas's API](https://developers.lucca.fr/api-reference/legacy/introduction). We automatically authenticate all requests and use 'https://\\{account\\}.\\{ilucca|ilucca-demo\\}.\\{region\\}/' as the base URL.|\n|Manatal|`manatal/career-page`|Manatal's Career Page API. We use `https://api.manatal.com/open/v3/career-page/\\{client_slug\\}` as the base URL.|\n|Manatal|`manatal/open-api-v3`|[Manatal's Open API v3](https://developers.manatal.com/reference/getting-started). We automatically authenticate all requests and use `https://api.manatal.com/open/v3` as the base URL.|\n|MHR People First|`peoplefirst/v1`|MHR People First [v1 API](https://docs.people-first.com/api/api-docs/api-docs.html). We automatically authenticate all requests using the access token and tenant/environment codes. For default environments, we use `https://\\{tenant_code\\}.people-first.com/api/v1` as the base URL. For non-default environments, we use `https://\\{tenant_code\\}-\\{environment_code\\}.people-first.com/api/v1`.|\n|Microsoft Azure AD|`azuread/v1`|[AzureAD's API](https://learn.microsoft.com/en-us/graph/api/resources/identity-network-access-overview?view=graph-rest-1.0). We automatically authenticate all requests.|\n|Microsoft Entra ID|`entraid/v1`|[AzureAD's API](https://learn.microsoft.com/en-us/graph/api/resources/identity-network-access-overview?view=graph-rest-1.0). We automatically authenticate all requests.|\n|Mysolution|`mysolution/default`|[Mysolution's API](https://swagger.mysolution.nl/). We automatically authenticate all requests and use the customer's domain as base URL.|\n|Nmbrs|`nmbrs/soap`|[Nmbrs SOAP API](https://api.nmbrs.nl/soap/v3/). We automatically authenticate all requests and use `https://api.nmbrs.nl/soap/v3/` as the base URL. Set `data` to your raw XML string (the content that will be placed inside the `\\` tag). Use `/` as your `path`, as we will always send requests to `https://api.nmbrs.nl/soap/v3/\\{service_name\\}.asmx`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Available services include `EmployeeService` and `CompanyService`.|\n|Odoo|`odoo/json2`|Odoo's [JSON-2 API](https://www.odoo.com/documentation/19.0/developer/reference/external_api.html). We automatically authenticate all requests and use `https://\\{domain\\}.odoo.com/json/2` as the base URL. Odoo JSON-2 requests are always `POST` requests and use paths like `/\\{model\\}/\\{method\\}` (e.g. `/res.partner/search_read`).|\n|Okta|`okta/v1`|[Okta's API](https://developer.okta.com/docs/api/openapi/okta-management/management/tag/ApiServiceIntegrations/). We automatically authenticate all request ans use 'https://\\/api/v1' as the base URL.|\n|Onlyfy|`onlyfy/v1`|Onlyfy's [Public v1 REST API](https://onlyfy.io/doc/v1#section/Introduction). We automatically authenticate all requests using the `apikey` header and use `https://api.prescreenapp.io/v1` as the base URL.|\n|Oracle HCM|`oraclehcm/api`|Oracle HCM Cloud [REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/index.html). We automatically authenticate all requests and use `https://\\{domain\\}/` as the base URL, where domain is your Oracle Cloud domain.|\n|Oracle Recruiting Cloud|`oraclerecruiting/rest`|[Oracle's REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/rest-endpoints.html). We automatically authenticate all requests and use 'https://\\{company_url\\}' as the base url.|\n|Oracle Recruiting Cloud|`oraclerecruiting/rest`|[Oracles's REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/rest-endpoints.html). We automatically authenticate all requests and use 'https://\\{company_url\\}' as the base url.|\n|Paradox|`paradox/v1`|We use `\\{api_url\\}/api/v1` as the base URL. Find the official docs [here](https://paradox.readme.io/).|\n|Paradox|`paradox/v1public`|We use `\\{api_url\\}/api/v1/public` as the base URL. Find the official docs [here](https://paradox.readme.io/).|\n|Paychex|`paychex/api`|Paychex [REST API](https://developer.paychex.com/documentation). We automatically authenticate all requests and use `https://api.paychex.com` as the base URL.|\n|Paycom|`paycom/v1`|Paycom's REST API. We automatically authenticate all requests using the provided SID and API Token and use `https://api.paycomonline.net/v4/rest/index.php/api/v1` as the base URL.|\n|Paycor|`paycor/v1`|[Paycors's v1 API](https://developers.paycor.com/explore#section/Getting-Started). We automatically authenticate all requests and use 'https://apis.paycor.com'.|\n|PayFit|`payfitcustomer/api`|PayFit [Partner API](https://developers.payfit.io/reference). We automatically authenticate all requests using the provided API key and use `https://partner-api.payfit.com` as the base URL.|\n|PayFit|`payfitpartner/partner-api`|PayFit [Partner API](https://developers.payfit.io/reference). We automatically authenticate all requests using the OAuth access token and use `https://partner-api.payfit.com` as the base URL.|\n|Paylocity|`paylocity/default`|[Paylocity's Weblink API](https://developer.paylocity.com/integrations/reference/authentication-weblink). We automatically authenticate all requests and use 'https://\\{api|dc1demogw\\}.paylocity.com/' as the base URL.|\n|Paylocity|`paylocity/next-gen`|[Paylocity's NextGen API](https://developer.paylocity.com/integrations/reference/authentication). We automatically authenticate all requests and use 'https://dc1prodgwext.paylocity.com/' as the base URL.|\n|PeopleHR|`peoplehr/default`|[PeopleHR's API](https://apidocs.peoplehr.com/#). We automatically authenticate all request ans use 'https://api.peoplehr.net' as the base URL.|\n|PeopleXD|`peoplexd/b2b`|PeopleXD's [B2B API](https://documenter.getpostman.com/view/3101638/TzeTHUDu#intro). We automatically authenticate all requests and use `https://api.corehr.com/ws/\\{tenant_id\\}/corehr` or `https://uatapi.corehr.com/ws/\\{tenant_id\\}/corehr` as the base URL.|\n|Personio|`personio/jobboard`|API endpoints exposed on Personio's public job board pages ([currently just the XML feed](https://developer.personio.de/reference/get_xml)). We automatically use the right `https://\\{company\\}.jobs.personio.de` base URL.|\n|Personio|`personio/personnel`|Personio's [Personnel Data API](https://developer.personio.de/reference/get_company-employees). We automatically authenticate all requests using the client ID and secret and use `https://api.personio.de/v1` as the base URL.|\n|Personio|`personio/personnelv2`|Personio's [V2 Personnel Data API](https://developer.personio.de/v2.0/reference/introduction). We automatically authenticate all requests using the client ID and secret and use `https://api.personio.de/v2` as the base URL.|\n|Personio|`personio/recruiting`|Personio's [Recruiting API](https://developer.personio.de/reference/get_company-employees). We automatically authenticate all requests using the Recruiting access token and use `https://api.personio.de/v1/recruiting` as the base URL.|\n|Personio|`personio/recruitingV2`|Personio's [V2 Recruiting API](https://developer.personio.de/reference/get_v2-recruiting-applications). We automatically authenticate all requests using the Recruiting access token, send the `Beta` header and use `https://api.personio.de/v2/recruiting` as the base URL.|\n|Phenom|`phenom/rest-api`|The [Phenom API](https://developer.phenom.com/). We automatically authenticate all requests and use `https://api-stg.phenompro.com` as the base URL.|\n|Pinpoint|`pinpoint/v1`|Pinpoint's [JSON:API](https://developers.pinpointhq.com/docs). We automatically authenticate all requests using the `X-API-KEY` header and use `https://\\{subdomain\\}.pinpointhq.com/api/v1` as the base URL.|\n|Planday|`planday/api`|Planday's [HR API v1.0](https://openapi.planday.com/api/hr?version=v1.0). We automatically authenticate all requests and use `https://openapi.planday.com` as the base URL.|\n|Recruitee|`recruitee/default`|The [Recruitee API](https://api.recruitee.com/docs/index.html). We automatically authenticate all requests and use `https://api.recruitee.com/c/\\{company_id\\}` as the base URL.|\n|Recruitee|`recruitee/v1`|We use `https://api.recruitee.com/c/\\{company_id\\}` as the base URL. Find the official docs [here](https://docs.recruitee.com/reference).|\n|RecruiterFlow|`recruiterflow/v1`|RecruiterFlow API [docs](https://docs.recruiterflow.com/). We automatically authenticate all requests using the RF-Api-Key header and use `https://api.recruiterflow.com` as the base URL.|\n|Remote|`remotecom/default`|Remote's [API](https://remote.com/resources/api/getting-started). We automatically authenticate all requests using provided credentials.|\n|rexx systems|`rexx/default`|Rexx's HRIS export API. There is only one endpoint: `Get /`|\n|Rippling|`rippling/api`|Rippling's [API](https://developer.rippling.com/documentation). We automatically authenticate all requests and use `https://api.rippling.com/platform/api` or`https://rest.ripplingapis.com` as the base URL.|\n|Sage HR|`sagehr/api`|Sage HR's [API](https://developer.sage.com/hr/reference/api-ref). We automatically authenticate all requests and use `https://\\{subdomain\\}.sage.hr/api` as the base URL.|\n|Sage People|`sagepeople/salesforce-rest-api`|Sage People is built on Salesforce's [API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_what_is_rest_api.htm). We automatically authenticate all requests and use `https://\\{customer_name\\}.my.salesforce.com/` as the base URL.|\n|SAP SuccessFactors|`successfactors/lms-odata-v4`|We use `https://\\{api_domain\\}/learning/odatav4` as the base URL. Find the official docs [here](https://help.sap.com/docs/successfactors-learning/sap-successfactors-learning-odata-apis).|\n|SAP SuccessFactors|`successfactors/odata-v2`|[SuccessFactors' OData V2 API](https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/2211/en-US/SF_HCM_OData_API_REF_en.pdf). We automatically authenticate all requests and use `https://\\{api_domain\\}\\{path?\\}/odata/v2` as the base URL (the optional `\\{path\\}` is used when connecting via proxied/gateway domains).|\n|SD Worx|`sdworx/default`|SD Worx's [OData API](https://apistaging.cobra.sdworx.com/Resources). We automatically authenticate all requests using the client ID and secret and use `\\{api_url\\}` as the base URL.|\n|Silae|`silae/rest`|[Silae's REST API](https://silae-api.document360.io/docs). We automatically authenticate all requests and use 'https://payroll-api.silae.fr/payroll' as the base URL.|\n|Simployer|`simployer/v1`|[AlexisHR's v1 API](https://docs.alexishr.com/) We automatically authenticate all requests and use `https://\\{subdomain\\}.alexishr.com` as base URL.|\n|SmartRecruiters|`smartrecruiters/default`|Smartrecruiters [API](https://developers.smartrecruiters.com/reference/apply-api). We automatically authenticate all requests using OAuth and use `https://api.smartrecruiters.com` as the base URL.|\n|SmartRecruiters|`smartrecruiters/default`|Smartrecruiters [API](https://developers.smartrecruiters.com/reference/apply-api). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.smartrecruiters.com` as the base URL.|\n|Softgarden|`softgarden/apply-api`|[Softgarden's Apply API](https://dev.softgarden.de/apply-api/). We automatically authenticate all requests and use 'https://jobdb.softgarden.de/jobdb/public' as base URL.|\n|Softgarden|`softgarden/frontend-v3`|[Softgarden's Frontend API v3](https://dev.softgarden.de/frontend-v3/. We automatically authenticate all requests and use 'https://api.softgarden.io/api/rest' as base URL.|\n|Spark Hire Recruit|`comeet/api`|[Spark Hire Recruit's API.](https://developers.comeet.com/reference/recruiting-api-overview)We automatically authenticate all requests and use `https://api.comeet.com` as the base URL.|\n|Spott|`spott/protected`|The [Spott API](https://docs.gospott.com). We automatically authenticate all requests and use `https://api.gospott.com` as the base URL.|\n|Sympa|`sympa/api`|Sympa's [API](https://documenter.getpostman.com/view/33639379/2sA3kXG1vX#intro). We automatically authenticate all requests and use `https://api.sympahr.net/api/` as the base URL.|\n|Taleez|`taleez/0`|[Taleez's API](https://api.taleez.com/swagger-ui/index.html). We automatically authenticate all requests and use `https://api.taleez.com/0` as the base URL.|\n|Talention|`talention/v1`|Talention's API. We automatically authenticate all requests and use `https://\\{api_domain\\}/tms/\\{account_id\\}/external/api/1.0` as the base URL. Documentation is provided privately by Talention. Contact Kombo support for assistance with specific endpoints.|\n|Taleo|`taleo/soap`|[Taleo's API](https://docs.oracle.com/en/cloud/saas/taleo-enterprise/23b/otwsu/c-taleoapi.html). We automatically authenticate all requests and use 'https://\\{your-subdomain\\}.taleo.net/enterprise/soap' as base URL.|\n|Teamtailor Job Boards|`teamtailorjobboards/direct-apply`|Teamtailor's [Job Board Direct Apply API](https://partner.teamtailor.com/job_boards/direct_apply/#direct-apply). We automatically authenticate all requests and use `https://5qbn6o9x4h.execute-api.eu-west-1.amazonaws.com/production` as the base URL. All requests are automatically signed with HMAC-SHA256 signature.|\n|Teamtailor|`teamtailor/v1`|We use `https://api.teamtailor.com/v1` as the base URL. Find the official docs [here](https://docs.teamtailor.com/).|\n|TRAFFIT|`traffit/v2`|Traffit's [v2 API](https://api.traffit.com). We authenticate all requests with the Traffit API key and use the base URL `https://yourdomain.traffit.com/api/integration/v2`.|\n|Udemy Business|`udemy/learning`|Udemy Business REST API. We automatically handle authentication and use `https://\\{account_name\\}.udemy.com/api-2.0/organizations/\\{account_id\\}/` as the base URL.|\n|UKG Pro|`ukgpro/default`|[UKG Pro's HRIS API](https://developer.ukg.com/hcm/reference/get_personnel-v1-person-details). We automatically authenticate all requests and use `https://\\{hostname\\}` as the base URL.|\n|UKG Pro|`ukgpro/recruting`|[UKG Pro's Recruiting API](https://developer.ukg.com/hcm/reference/retrieveapplications). We automatically authenticate all requests and use `https://\\{hostname\\}/talent/recruiting/v2/\\{tenantalias\\}/api` as the base URL.|\n|UKG Ready|`ukgready/api`|UKG Ready [API](https://secure.saashr.com/ta/docs/rest/public/). We automatically authenticate all requests using the provided credentials and use `https://\\{api_domain\\}` as the base URL.|\n|Visma Peple|`peple/hrm`|[Visma Payroll Reporting API](https://api.analytics1.hrm.visma.net/docs/openapi.html). We automatically authenticate all requests using the client credentials and use 'https://api.analytics1.hrm.visma.net' as the base URL.|\n|Visma Raet - Youforce|`youforce/v1.0`|[Youforce's basic v1.0 API](https://vr-api-integration.github.io/youforce-api-documentation/postman_collections.html). We automatically authenticate all requests and use 'https://api.youforce.com' as base URL.|\n|Visma YouServe|`youserve/learning`|Visma YouServe [Learning API](https://youserve-domain-api.github.io/SwaggerUI/learning.html). We automatically authenticate all requests using OAuth 2.0 with the provided credentials and use `https://api.youserve.nl/learning/v1.0` as the base URL.|\n|Workable|`workable/v1`|**Deprecated: Use `v3` instead.** Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\\{subdomain\\}.\\{environment\\}.com/spi/v3` as the base URL.|\n|Workable|`workable/v3`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\\{subdomain\\}.\\{environment\\}.com/spi/v3` as the base URL.|\n|Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\\{domain\\}/api/\\{service_name\\}/\\{version\\}/\\{tenant\\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., \"v1\", \"v2\"); if omitted, it defaults to \"v1\".|\n|Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\\{domain\\}/ccx/service/\\{tenant\\}/\\{service_name\\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).|\n|workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.|\n|Zelt|`zelt/partner`|Zelt's [Partner API](https://go.zelt.app/apiv2/swagger). We automatically authenticate all requests using the connected OAuth credentials and use `https://go.zelt.app/apiv2/partner` as the base URL.|\n|Zoho Recruit|`zohorecruit/v2`|Zoho Recruit's [V2 API](https://www.zoho.com/recruit/developer-guide/apiv2/modules-api.html). We automatically authenticate all requests and use `https://recruit.\\{domain\\}/recruit/v2` as the base URL.|\n|Zvoove Recruit|`zvooverecruit/applicants`|[Zvoove Recruit's Applicants API](https://api.zvoove.com/docs/). We automatically authenticate all requests using the applicants API key and use 'https://\\{domain\\}/api/public' as base URL.|\n|Zvoove Recruit|`zvooverecruit/jobs`|[Zvoove Recruit's Jobs API](https://api.zvoove.com/docs/). We automatically authenticate all requests using the jobs API key and use 'https://\\{domain\\}/api/public' as base URL.|\n\nPlease note that the passthrough API endpoints are only meant for edge cases. That's why we only expose them for new integrations after understanding a concrete customer use case. If you have such a use case in mind, please reach out to Kombo.","tags":["General"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"greenhouse:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"tool","in":"path","required":true,"description":"The ID of the tool whose passthrough API you want to call (e.g., `personio`).","schema":{"$ref":"#/components/schemas/PostPassthroughToolApiParameterTool"},"examples":{"example1":{"value":"personio"}}},{"name":"api","in":"path","required":true,"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.","schema":{"$ref":"#/components/schemas/PostPassthroughToolApiParameterApi"},"examples":{"example1":{"value":"personnel"}}}],"requestBody":{"description":"POST /passthrough/:tool/:api Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostPassthroughToolApiRequestBody"},"examples":{"example1":{"value":{"method":"GET","path":"/company/employees"}}}}}},"responses":{"200":{"description":"POST /passthrough/:tool/:api Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostPassthroughToolApiPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}":{"delete":{"operationId":"DeleteIntegrationsIntegrationId","summary":"Delete integration","description":"Delete the specified integration.\n**⚠️ This can not be undone!**","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"DELETE /integrations/:integration_id Parameter","schema":{"$ref":"#/components/schemas/DeleteIntegrationsIntegrationIdParameterIntegrationId"}}],"requestBody":{"description":"DELETE /integrations/:integration_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteIntegrationsIntegrationIdRequestBody"}}}},"responses":{"200":{"description":"DELETE /integrations/:integration_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteIntegrationsIntegrationIdPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}},"get":{"operationId":"GetIntegrationsIntegrationId","summary":"Get integration details","description":"Get the specified integration with everything you need to display it to your customer.","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"GET /integrations/:integration_id Parameter","schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdParameterIntegrationId"}}],"responses":{"200":{"description":"GET /integrations/:integration_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}/enabled":{"put":{"operationId":"PutIntegrationsIntegrationIdEnabled","summary":"Set integration enabled","description":"Enable or disable the specified integration. When disabling, all currently running syncs will be cancelled.\n\nAll authentication credentials and configuration are preserved. Syncs can be resumed by re-enabling the integration.\n\nYou may use this to, for example, pause syncing for customers that are temporarily not using the integration.","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"PUT /integrations/:integration_id/enabled Parameter","schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdEnabledParameterIntegrationId"}}],"requestBody":{"description":"PUT /integrations/:integration_id/enabled Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdEnabledRequestBody"}}}},"responses":{"200":{"description":"PUT /integrations/:integration_id/enabled Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdEnabledPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}/relink":{"post":{"operationId":"PostIntegrationsIntegrationIdRelink","summary":"Create reconnection link","description":"Create a link that will allow the user to reconnect an integration. This is useful if you want to allow your users to update the credentials if the old ones for example expired.\n\nEmbed this the same way you would [embed the connect link](/connect/embedded-flow). By default, the link will be valid for 1 hour.\n\n### Example Request Body\n\n```json\n{\n \"language\": \"en\",\n \"scope_config_id\": \"9Pv6aCFwNDEzPNmwjSsY9SQx\",\n \"link_type\": \"EMBEDDED\"\n}\n```","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"POST /integrations/:integration_id/relink Parameter","schema":{"$ref":"#/components/schemas/PostIntegrationsIntegrationIdRelinkParameterIntegrationId"},"examples":{"example1":{"value":"personio:93fCvorjZ2jas7ZekX1V1n5d"}}}],"requestBody":{"description":"POST /integrations/:integration_id/relink Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostIntegrationsIntegrationIdRelinkRequestBody"},"examples":{"example1":{"value":{"language":"en","scope_config_id":"9Pv6aCFwNDEzPNmwjSsY9SQx","link_type":"EMBEDDED"}}}}}},"responses":{"200":{"description":"POST /integrations/:integration_id/relink Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostIntegrationsIntegrationIdRelinkPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}/integration-fields":{"get":{"operationId":"GetIntegrationsIntegrationIdIntegrationFields","summary":"Get integration fields","description":"Get all fields available on the specified integration.\n**This includes the mapping to your custom fields**","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"GET /integrations/:integration_id/integration-fields Parameter","schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdIntegrationFieldsParameterIntegrationId"}},{"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/GetIntegrationsIntegrationIdIntegrationFieldsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 2000.","schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdIntegrationFieldsParameterPageSize"}}],"responses":{"200":{"description":"GET /integrations/:integration_id/integration-fields Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdIntegrationFieldsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}/integration-fields/{integration_field_id}":{"patch":{"operationId":"PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldId","summary":"Updates an integration fields passthrough setting","description":"When enabled, the integration field will be passed as part of the `integration_fields` array on the specific model endpoint. Providing false will disable the passthrough for the specified field.","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"PATCH /integrations/:integration_id/integration-fields/:integration_field_id Parameter","schema":{"$ref":"#/components/schemas/PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdParameterIntegrationId"},"examples":{"example1":{"value":"integration_id"}}},{"name":"integration_field_id","in":"path","required":true,"description":"PATCH /integrations/:integration_id/integration-fields/:integration_field_id Parameter","schema":{"$ref":"#/components/schemas/PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdParameterIntegrationFieldId"},"examples":{"example1":{"value":"integration_field_id"}}}],"requestBody":{"description":"PATCH /integrations/:integration_id/integration-fields/:integration_field_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdRequestBody"},"examples":{"example1":{"value":{"enable_passthrough":true}}}}}},"responses":{"200":{"description":"PATCH /integrations/:integration_id/integration-fields/:integration_field_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchIntegrationsIntegrationIdIntegrationFieldsIntegrationFieldIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"9suhxJU83Kon4kPTS47837uE","key":"tax_id","model":"hris_employees","type":"DEFAULT","label":"Tax ID","is_passthrough_enabled":true,"is_writable":false}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}/custom-fields":{"get":{"operationId":"GetIntegrationsIntegrationIdCustomFields","summary":"Get custom fields with current mappings","description":"Get all custom fields available on the specified integration.\n**This includes the mapping to the corresponding integration field if applicable*","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"GET /integrations/:integration_id/custom-fields Parameter","schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdCustomFieldsParameterIntegrationId"}},{"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/GetIntegrationsIntegrationIdCustomFieldsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdCustomFieldsParameterPageSize"}}],"responses":{"200":{"description":"GET /integrations/:integration_id/custom-fields Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIntegrationsIntegrationIdCustomFieldsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/integrations/{integration_id}/custom-fields/{custom_field_id}":{"put":{"operationId":"PutIntegrationsIntegrationIdCustomFieldsCustomFieldId","summary":"Put custom field mappings","description":"Updates the mapping of a given custom field. If the custom field is already mapped, it will be updated.","tags":["General"],"parameters":[{"name":"integration_id","in":"path","required":true,"description":"The unique ID of the integration where the custom field mapping should be updated","schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdParameterIntegrationId"},"examples":{"example1":{"value":"integration_id"}}},{"name":"custom_field_id","in":"path","required":true,"description":"The unique ID of the custom field that should be updated","schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdParameterCustomFieldId"},"examples":{"example1":{"value":"custom_field_id"}}}],"requestBody":{"description":"PUT /integrations/:integration_id/custom-fields/:custom_field_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdRequestBody"},"examples":{"example1":{"value":{"integration_field_id":"integration_field_id"}}}}}},"responses":{"200":{"description":"PUT /integrations/:integration_id/custom-fields/:custom_field_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutIntegrationsIntegrationIdCustomFieldsCustomFieldIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/tools/{category}":{"get":{"operationId":"GetToolsCategory","summary":"Get tools","description":"Get a list of the tools (i.e., integrations) enabled in your environment.\n This can (in combination with the `integration_tool` parameter of [the \"Create Link\" endpoint](/v1/post-create-link)) be used to, for example, display a custom list or grid of available integrations to your end users instead of exposing Kombo Connect's standard tool selector.","tags":["General"],"parameters":[{"name":"category","in":"path","required":true,"description":"GET /tools/:category Parameter","schema":{"$ref":"#/components/schemas/GetToolsCategoryParameterCategory"}}],"responses":{"200":{"description":"GET /tools/:category Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetToolsCategoryPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}]}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/hris/provisioning-groups/{group_id}/diff":{"post":{"operationId":"PostHrisProvisioningGroupsGroupIdDiff","summary":"Get provisioning diff","description":"Get the list of users to provision, deprovision, and optionally update based on the users you've already provisioned in your system.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"group_id","in":"path","required":true,"description":"ID of the provisioning group (currently only `default` is allowed).","schema":{"$ref":"#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId"},"examples":{"example1":{"value":"n39n320clr8c5amf8v83nbch"}}}],"requestBody":{"description":"POST /hris/provisioning-groups/:group_id/diff Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody"},"examples":{"example1":{"value":{"provisioned_users":[{"origin_id":"your_id_123","email":"johndoe@example.com"}],"options":{"employee_fields":["id","first_name","last_name"]}}}}}}},"responses":{"200":{"description":"POST /hris/provisioning-groups/:group_id/diff Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisProvisioningGroupsGroupIdDiffPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/provisioning-groups/{group_id}/setup-links":{"post":{"operationId":"PostHrisProvisioningGroupsGroupIdSetupLinks","summary":"Create provisioning setup link","description":"Create a new link that can be passed to the Kombo Connect SDK to open the provisioning setup UI.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"group_id","in":"path","required":true,"description":"ID of the provisioning group (currently only `default` is allowed).","schema":{"$ref":"#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId"},"examples":{"example1":{"value":"n39n320clr8c5amf8v83nbch"}}}],"requestBody":{"description":"POST /hris/provisioning-groups/:group_id/setup-links Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody"},"examples":{"example1":{"value":{"language":"en"}}}}}},"responses":{"200":{"description":"POST /hris/provisioning-groups/:group_id/setup-links Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"url":"https://connect.kombo.dev/v1/setup?token=GinuMJCpUQ9xdpLmD2ocw8qdiK3qiPCizDCv754EXri2vAX4","expires_at":"2023-10-11T12:00:00.000Z"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employees":{"get":{"operationId":"GetHrisEmployees","summary":"Get employees","description":"Retrieve all employees.\n\nNot interested in most fields? You can use our [our Scopes feature](/scopes) to customize what data points are synced.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisEmployeesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterRemoteIds"}},{"name":"employment_status","in":"query","required":false,"description":"**(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** Filter by the `employment_status` field.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterEmploymentStatus"}},{"name":"employment_statuses","in":"query","required":false,"description":"Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, `LEAVE` \n* `ACTIVE`: the employee is **actively employed** \n* `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process) \n* `INACTIVE`: a full-time employee is no longer employed, or, for a contract worker when their contract runs out \n* `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information) \n \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses"}},{"name":"group_ids","in":"query","required":false,"description":"Filter by a comma-separated list of group IDs. We will only return employees that are members of _any_ of the groups.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterGroupIds"}},{"name":"legal_entity_ids","in":"query","required":false,"description":"Filter by a comma-separated list of legal entity IDs. We will only return employees that are members of _any_ of the legal entities.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterLegalEntityIds"}},{"name":"work_location_ids","in":"query","required":false,"description":"Filter by a comma-separated list of work location IDs. We will only return employees who are at _any_ of the work locations.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterWorkLocationIds"}},{"name":"work_emails","in":"query","required":false,"description":"Filter by a comma-separated list of work emails. We will only return employees who have _any_ of the work emails. The format of the emails is case-insensitive.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterWorkEmails"}},{"name":"personal_emails","in":"query","required":false,"description":"Filter by a comma-separated list of personal emails. We will only return employees who have _any_ of the personal emails. The format of the emails is case-insensitive.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterPersonalEmails"}},{"name":"custom_fields","in":"query","required":false,"description":"A JSON string with a single key-value pair like {\"fieldKey\":\"fieldValue\"} to filter employees by a specific custom field value. Note that the value must be a string, number, boolean or null and the key must be a valid custom field key. Custom fields with a value of type array or object are not supported.","schema":{"$ref":"#/components/schemas/GetHrisEmployeesParameterCustomFields"}}],"responses":{"200":{"description":"GET /hris/employees Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisEmployeesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","employee_number":"3243422","first_name":"John","last_name":"Doe","nationality":"French","display_full_name":"John Doe","job_title":"Integrations Team Lead","work_email":"john.doe@acme.com","personal_email":"john@doe.me","mobile_phone_number":"801-555-4687","ssn":"555-32-6395","tax_id":"12 345 678 901","gender":"MALE","ethnicity":"BLACK_AFRICAN_AMERICAN","marital_status":"MARRIED","employment_status":"INACTIVE","employment_type":"FULL_TIME","weekly_hours":40,"avatar":"https://resources.bamboohr.com/images/photo_person_150x150.png","work_location_id":"7E2gyuv6TmvtByzBxW9Sxt53","legal_entity_id":"xB32bied320csBSsl3XWdlw33","manager_id":"9pf2pxBB8VX8EQMC9aipW2Bo","home_address":{"city":"Berlin","country":"DE","raw":"Sonnenallee 63\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}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"post":{"operationId":"PostHrisEmployees","summary":"[DEPRECATED] Create employee","description":"Create a new employee.\n\n\n We are deprecating this endpoint in favor of the new [create employee form](/hris/features/create-employee) endpoint.\n\n\n\n This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"work_email\": \"john.doe@acme.com\",\n \"gender\": \"MALE\",\n \"date_of_birth\": \"1986-01-01\",\n \"start_date\": \"2020-04-07\",\n \"job_title\": \"Integrations Team Lead\",\n \"home_address\": {\n \"city\": \"Berlin\",\n \"country\": \"DE\",\n \"state\": \"Berlin\",\n \"street_1\": \"Sonnenallee 63\",\n \"zip_code\": \"12045\"\n }\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /hris/employees Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeesRequestBody"},"examples":{"example1":{"value":{"first_name":"John","last_name":"Doe","work_email":"john.doe@acme.com","gender":"MALE","date_of_birth":"1986-01-01","start_date":"2020-04-07","job_title":"Integrations Team Lead","home_address":{"city":"Berlin","country":"DE","state":"Berlin","street_1":"Sonnenallee 63","zip_code":"12045"}}}}}}},"responses":{"200":{"description":"POST /hris/employees Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","employee_number":"3243422","first_name":"John","last_name":"Doe","nationality":"French","display_full_name":"John Doe","job_title":"Integrations Team Lead","work_email":"john.doe@acme.com","personal_email":"john@doe.me","mobile_phone_number":"801-555-4687","ssn":"555-32-6395","tax_id":"12 345 678 901","gender":"MALE","ethnicity":"BLACK_AFRICAN_AMERICAN","marital_status":"MARRIED","employment_status":"INACTIVE","employment_type":"FULL_TIME","weekly_hours":40,"avatar":"https://resources.bamboohr.com/images/photo_person_150x150.png","work_location_id":"7E2gyuv6TmvtByzBxW9Sxt53","legal_entity_id":"xB32bied320csBSsl3XWdlw33","manager_id":"9pf2pxBB8VX8EQMC9aipW2Bo","home_address":{"city":"Berlin","country":"DE","raw":"Sonnenallee 63\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":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employees/form":{"get":{"operationId":"GetHrisEmployeesForm","summary":"Get employee form","description":"Get the form for creating an employee. This form can be rendered dynamically on your frontend to allow your customers to create employees in their HRIS.\n\nFollow our [create employee guide here](/hris/features/create-employee) to learn how this form is generated and how you can use it.\n\n### Example Form\n```json\n{\n \"properties\": {\n \"firstName\": {\n \"type\": \"text\",\n \"label\": \"First Name\",\n \"required\": true,\n \"description\": \"Employee's first name\",\n \"unified_key\": \"first_name\",\n \"min_length\": 1,\n \"max_length\": 100\n },\n \"startDate\": {\n \"type\": \"date\",\n \"label\": \"Start Date\",\n \"required\": true,\n \"description\": \"Employee's start date\",\n \"unified_key\": \"start_date\"\n },\n \"workLocation\": {\n \"type\": \"object\",\n \"label\": \"Work Location\",\n \"required\": false,\n \"description\": \"Employee's work location\",\n \"unified_key\": null,\n \"properties\": {\n \"site\": {\n \"type\": \"single_select\",\n \"label\": \"Site\",\n \"required\": true,\n \"description\": \"Employee's site\",\n \"unified_key\": null,\n \"options\": {\n \"type\": \"inline\",\n \"entries\": [\n {\n \"label\": \"Site 1\",\n \"id\": \"FXrER44xubBqA9DLgZ3PFNNx\",\n \"unified_value\": \"1\",\n \"remote_id\": \"site_1\"\n },\n {\n \"label\": \"Site 2\",\n \"id\": \"2rv75UKT2XBoQXsUb9agiTUm\",\n \"unified_value\": \"2\",\n \"remote_id\": \"site_2\"\n }\n ]\n }\n },\n \"keyNumbers\": {\n \"type\": \"array\",\n \"label\": \"Key Numbers\",\n \"required\": false,\n \"description\": \"Employee's key numbers\",\n \"unified_key\": null,\n \"min_items\": 2,\n \"max_items\": 5,\n \"item_type\": {\n \"type\": \"number\",\n \"label\": \"Key Number\",\n \"required\": false,\n \"description\": \"The number of the keys which belong to the employee\",\n \"unified_key\": null,\n \"min\": 0,\n \"max\": 99\n }\n }\n }\n }\n }\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /hris/employees/form Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisEmployeesFormPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"properties":{"firstName":{"label":"First Name","required":true,"description":"Employee's first name","unified_key":"first_name","type":"text","min_length":1,"max_length":100,"reg_exp":null},"startDate":{"label":"Start Date","required":true,"description":"Employee's start date","unified_key":"start_date","type":"date"},"workLocation":{"label":"Work Location","required":false,"description":"Employee's work location","unified_key":null,"type":"object","properties":{"site":{"label":"Site","required":true,"description":"Employee's site","unified_key":null,"type":"single_select","options":{"type":"inline","entries":[{"id":"FXrER44xubBqA9DLgZ3PFNNx","label":"Site 1","unified_value":"1","remote_id":"site_1"},{"id":"2rv75UKT2XBoQXsUb9agiTUm","label":"Site 2","unified_value":"2","remote_id":"site_2"}]}},"keyNumbers":{"label":"Key Numbers","required":false,"description":"Employee's key numbers","unified_key":null,"type":"array","item_type":{"label":"Key Number","required":false,"description":"The number of the keys which belong to the employee","unified_key":null,"type":"number","min":0,"max":99},"min_items":2,"max_items":5}}}}},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"post":{"operationId":"PostHrisEmployeesForm","summary":"Create employee with form","description":"Create an employee, based on the form schema.\n\n\n This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"properties\": {\n \"firstName\": \"John\",\n \"startDate\": \"2025-01-01\",\n \"workLocation\": {\n \"site\": \"8e422bf8cav\",\n \"keyNumbers\": [\n 142,\n 525,\n 63\n ]\n }\n }\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /hris/employees/form Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeesFormRequestBody"},"examples":{"example1":{"value":{"properties":{"firstName":"John","startDate":"2025-01-01","workLocation":{"site":"8e422bf8cav","keyNumbers":[142,525,63]}}}}}}}},"responses":{"200":{"description":"POST /hris/employees/form Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeesFormPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"12345","prehire":{"remote_id":null}},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employees/{employee_id}":{"patch":{"operationId":"PatchHrisEmployeesEmployeeId","summary":"Update employee","description":"Update an employee.\n\n\n This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"BkgfzSr5muN9cUTMD4wDQFn4\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"work_email\": \"john.doe@acme.com\",\n \"ssn\": \"555-32-6395\",\n \"tax_id\": \"12 345 678 901\",\n \"gender\": \"MALE\",\n \"marital_status\": \"MARRIED\",\n \"date_of_birth\": \"1986-01-01\",\n \"start_date\": \"2020-04-07\",\n \"termination_date\": \"2022-05-20\",\n \"job_title\": \"Integrations Team Lead\",\n \"nationality\": \"DE\",\n \"home_address\": {\n \"city\": \"Berlin\",\n \"country\": \"DE\",\n \"state\": \"Berlin\",\n \"street_1\": \"Sonnenallee 63\",\n \"zip_code\": \"12045\"\n }\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"The ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`)","schema":{"$ref":"#/components/schemas/PatchHrisEmployeesEmployeeIdParameterEmployeeId"},"examples":{"example1":{"value":"BkgfzSr5muN9cUTMD4wDQFn4"}}}],"requestBody":{"description":"PATCH /hris/employees/:employee_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchHrisEmployeesEmployeeIdRequestBody"},"examples":{"example1":{"value":{"first_name":"John","last_name":"Doe","work_email":"john.doe@acme.com","ssn":"555-32-6395","tax_id":"12 345 678 901","gender":"MALE","marital_status":"MARRIED","date_of_birth":"1986-01-01","start_date":"2020-04-07","termination_date":"2022-05-20","job_title":"Integrations Team Lead","nationality":"DE","home_address":{"city":"Berlin","country":"DE","state":"Berlin","street_1":"Sonnenallee 63","zip_code":"12045"}}}}}}},"responses":{"200":{"description":"PATCH /hris/employees/:employee_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchHrisEmployeesEmployeeIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","employee_number":"3243422","first_name":"John","last_name":"Doe","nationality":"French","display_full_name":"John Doe","job_title":"Integrations Team Lead","work_email":"john.doe@acme.com","personal_email":"john@doe.me","mobile_phone_number":"801-555-4687","ssn":"555-32-6395","tax_id":"12 345 678 901","gender":"MALE","ethnicity":"BLACK_AFRICAN_AMERICAN","marital_status":"MARRIED","employment_status":"INACTIVE","employment_type":"FULL_TIME","weekly_hours":40,"avatar":"https://resources.bamboohr.com/images/photo_person_150x150.png","work_location_id":"7E2gyuv6TmvtByzBxW9Sxt53","legal_entity_id":"xB32bied320csBSsl3XWdlw33","manager_id":"9pf2pxBB8VX8EQMC9aipW2Bo","home_address":{"city":"Berlin","country":"DE","raw":"Sonnenallee 63\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":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employees/{employee_id}/documents":{"post":{"operationId":"PostHrisEmployeesEmployeeIdDocuments","summary":"Add document to employee","description":"Uploads an document file for the specified employee.\n\n\n This endpoint requires the permission **Manage documents** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"category_id\": \"3Cjwu7nA7pH5cX5X1NAPmb7M\",\n \"document\": {\n \"name\": \"Frank Doe Employment Contract.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"content_type\": \"text/plain\"\n }\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_id","in":"path","required":true,"description":"POST /hris/employees/:employee_id/documents Parameter","schema":{"$ref":"#/components/schemas/PostHrisEmployeesEmployeeIdDocumentsParameterEmployeeId"},"examples":{"example1":{"value":"GRKdd9dibYKKCrmGRSMJf3wu"}}}],"requestBody":{"description":"POST /hris/employees/:employee_id/documents Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeesEmployeeIdDocumentsRequestBody"},"examples":{"example1":{"value":{"category_id":"3Cjwu7nA7pH5cX5X1NAPmb7M","document":{"name":"Frank Doe Employment Contract.txt","data":"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=","content_type":"text/plain"}}}}}}},"responses":{"200":{"description":"POST /hris/employees/:employee_id/documents Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeesEmployeeIdDocumentsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employee-document-categories":{"get":{"operationId":"GetHrisEmployeeDocumentCategories","summary":"Get employee document categories","description":"Get employee document categories.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisEmployeeDocumentCategoriesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesParameterRemoteIds"}}],"responses":{"200":{"description":"GET /hris/employee-document-categories Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisEmployeeDocumentCategoriesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","name":"Employment contract","remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/teams":{"get":{"operationId":"GetHrisTeams","summary":"Get teams (deprecated)","description":"Get the teams.\n\n\n **This endpoint is deprecated!**\n\n Please use [the `/groups` endpoint](/hris/v1/get-groups) instead. It returns the same data but the naming makes more sense as the model not only includes teams but also departments and cost centers..\n\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisTeamsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisTeamsParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisTeamsParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisTeamsParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisTeamsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisTeamsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisTeamsParameterRemoteIds"}}],"responses":{"200":{"description":"GET /hris/teams Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisTeamsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"49","name":"Customer Success","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"type":"TEAM","parent_id":"KGaJ5XaVPob8mYVfD49W4DGB","remote_data":null}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/groups":{"get":{"operationId":"GetHrisGroups","summary":"Get groups","description":"Retrieve all \"groups\" (teams, departments, and cost centers).\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisGroupsParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterRemoteIds"}},{"name":"types","in":"query","required":false,"description":"Filter by a comma-separated list of group types: `DEPARTMENT`, `TEAM`, `COST_CENTER`, or `null` to filter groups without a type. \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterTypes"}},{"name":"name_contains","in":"query","required":false,"description":"Filter by the `name` field. Can be used to find a group by keywords present in the group name.","schema":{"$ref":"#/components/schemas/GetHrisGroupsParameterNameContains"}}],"responses":{"200":{"description":"GET /hris/groups Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisGroupsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"49","name":"Customer Success","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"type":"TEAM","parent_id":"KGaJ5XaVPob8mYVfD49W4DGB","remote_data":null}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employments":{"get":{"operationId":"GetHrisEmployments","summary":"Get employments","description":"Retrieve all employments.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisEmploymentsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisEmploymentsParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisEmploymentsParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisEmploymentsParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisEmploymentsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisEmploymentsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisEmploymentsParameterRemoteIds"}}],"responses":{"200":{"description":"GET /hris/employments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisEmploymentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"12vpXR7BeqYNWDShXRgsonnm","remote_id":"859","employee_id":"26vafvWSRmbhNcxJYqjCzuJg","job_title":"Social Media Marketer","pay_rate":85000,"pay_period":"YEAR","pay_frequency":"SEMIMONTHLY","employment_type":"FULL_TIME","pay_currency":"EUR","effective_date":"2021-01-30T00:00:00.000Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"custom_fields":{},"integration_fields":[]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/locations":{"get":{"operationId":"GetHrisLocations","summary":"Get work locations","description":"Retrieve all work locations.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisLocationsParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterRemoteIds"}},{"name":"name_contains","in":"query","required":false,"description":"Filter by the `name` field. Can be used to find a location by keywords present in the location name.","schema":{"$ref":"#/components/schemas/GetHrisLocationsParameterNameContains"}}],"responses":{"200":{"description":"GET /hris/locations Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisLocationsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"22st2Ji8XpncEYEak8mvQgQF","remote_id":"1348","name":"Kombo HQ","address":{"city":"Berlin","country":"DE","raw":"Sonnenallee 63\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}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/absence-types":{"get":{"operationId":"GetHrisAbsenceTypes","summary":"Get absence types","description":"Retrieve all absence types.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisAbsenceTypesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesParameterRemoteIds"}}],"responses":{"200":{"description":"GET /hris/absence-types Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisAbsenceTypesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"xzZoKssDaMZAd62kxayzzQvD","remote_id":"91","name":"Vacation","unit":"DAYS","half_days_supported":true,"exact_times_supported":false,"remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/time-off-balances":{"get":{"operationId":"GetHrisTimeOffBalances","summary":"Get time off balances","description":"Retrieve all time off balances.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisTimeOffBalancesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterRemoteIds"}},{"name":"employee_id","in":"query","required":false,"description":"Filter by a specific employee using their ID.","schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesParameterEmployeeId"}}],"responses":{"200":{"description":"GET /hris/time-off-balances Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisTimeOffBalancesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"FuyRuk5NqP3qTcThED3ymTuE","remote_id":"124123","employee_id":"2Up4ZCvq1bFVzmzXG6EWzV3j","type_id":"BQJaBxRCiqN46G27VTegvkEr","balance":14,"balance_unit":"DAYS","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"used":3,"used_unit":"DAYS","remote_data":null,"type":{"id":"xzZoKssDaMZAd62kxayzzQvD","remote_id":"91","name":"Vacation","unit":"DAYS","half_days_supported":true,"exact_times_supported":false,"remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/absences":{"get":{"operationId":"GetHrisAbsences","summary":"Get absences","description":"Retrieve all absences.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisAbsencesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterRemoteIds"}},{"name":"date_from","in":"query","required":false,"description":"Filter for all the absences that either start _or_ haven't ended yet on/after this day. If you imagine a calendar displaying absences, this defines the left-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterDateFrom"}},{"name":"date_until","in":"query","required":false,"description":"Filter for absences that start on or before this day (but might continue after). If you imagine a calendar displaying absences, this defines the right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterDateUntil"}},{"name":"type_ids","in":"query","required":false,"description":"Filter by a comma-separated list of absence type IDs.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterTypeIds"}},{"name":"employee_id","in":"query","required":false,"description":"Filter by a specific employee using their ID.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterEmployeeId"}},{"name":"time_from","in":"query","required":false,"description":"**(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for absences that either start after or start before and end after a certain time.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterTimeFrom"}},{"name":"time_until","in":"query","required":false,"description":"**(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for absences that start before a certain time.","schema":{"$ref":"#/components/schemas/GetHrisAbsencesParameterTimeUntil"}}],"responses":{"200":{"description":"GET /hris/absences Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisAbsencesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"22st2Ji8XpncEYEak8mvQgQF","remote_id":"1348","employee_id":"JDdUy9kiH5APaGizFrgNmQjM","approver_id":"AgXEispYPP1BbToHpqnqcpxy","start_date":"2022-08-04","end_date":"2022-08-05","start_half_day":true,"end_half_day":false,"start_time":"13:15:00","end_time":"17:00:00","amount":2,"unit":"DAYS","status":"APPROVED","employee_note":"Visiting my family.","type_id":"xzZoKssDaMZAd62kxayzzQvD","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":"2022-08-07T14:01:29.196Z","remote_data":null,"type":{"id":"xzZoKssDaMZAd62kxayzzQvD","remote_id":"91","name":"Vacation","unit":"DAYS","half_days_supported":true,"exact_times_supported":false,"remote_data":null,"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"post":{"operationId":"PostHrisAbsences","summary":"Create absence","description":"Create a new absence.\n\nCheck [this page](/hris/features/creating-absences) for a detailed guide.\n\n\n This endpoint requires the permission **Manage absences** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"wXJMxwDvPAjrJ4CyqdV9\",\n \"absence_type_id\": \"3YKtQ7qedsrcCady1jSyAkY1\",\n \"start_date\": \"2019-09-17\",\n \"end_date\": \"2019-09-21\",\n \"start_time\": \"08:30:00\",\n \"end_time\": \"16:00:00\",\n \"start_half_day\": false,\n \"end_half_day\": false,\n \"employee_note\": \"Visiting the aliens\"\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /hris/absences Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisAbsencesRequestBody"},"examples":{"example1":{"value":{"employee_id":"wXJMxwDvPAjrJ4CyqdV9","absence_type_id":"3YKtQ7qedsrcCady1jSyAkY1","start_date":"2019-09-17","end_date":"2019-09-21","start_time":"08:30:00","end_time":"16:00:00","start_half_day":false,"end_half_day":false,"employee_note":"Visiting the aliens"}}}}}},"responses":{"200":{"description":"POST /hris/absences Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisAbsencesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"22st2Ji8XpncEYEak8mvQgQF","remote_id":"1348","employee_id":"JDdUy9kiH5APaGizFrgNmQjM","approver_id":"AgXEispYPP1BbToHpqnqcpxy","start_date":"2022-08-04","end_date":"2022-08-05","start_half_day":true,"end_half_day":false,"start_time":"13:15:00","end_time":"17:00:00","amount":2,"unit":"DAYS","status":"APPROVED","employee_note":"Visiting my family.","type_id":"xzZoKssDaMZAd62kxayzzQvD","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":"2022-08-07T14:01:29.196Z","remote_data":null},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/absences/{absence_id}":{"delete":{"operationId":"DeleteHrisAbsencesAbsenceId","summary":"Delete absence","description":"Delete this absence.\n\n\n This endpoint requires the permission **Manage absences** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"absence_id\": \"wXJMxwDvPAjrJ4CyqdV9\"\n}\n```","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"absence_id","in":"path","required":true,"description":"The Kombo ID of the absence","schema":{"$ref":"#/components/schemas/DeleteHrisAbsencesAbsenceIdParameterAbsenceId"},"examples":{"example1":{"value":"wXJMxwDvPAjrJ4CyqdV9"}}}],"requestBody":{"description":"DELETE /hris/absences/:absence_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHrisAbsencesAbsenceIdRequestBody"},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"DELETE /hris/absences/:absence_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHrisAbsencesAbsenceIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"22st2Ji8XpncEYEak8mvQgQF","remote_id":"1348","employee_id":"JDdUy9kiH5APaGizFrgNmQjM","approver_id":"AgXEispYPP1BbToHpqnqcpxy","start_date":"2022-08-04","end_date":"2022-08-05","start_half_day":true,"end_half_day":false,"start_time":"13:15:00","end_time":"17:00:00","amount":2,"unit":"DAYS","status":"APPROVED","employee_note":"Visiting my family.","type_id":"xzZoKssDaMZAd62kxayzzQvD","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":"2022-08-07T14:01:29.196Z","remote_data":null},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/legal-entities":{"get":{"operationId":"GetHrisLegalEntities","summary":"Get legal entities","description":"Retrieve all legal entites.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisLegalEntitiesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterRemoteIds"}},{"name":"name_contains","in":"query","required":false,"description":"Filter by the `name` field. Can be used to find a legal entity by keywords present in the legal entity name.","schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesParameterNameContains"}}],"responses":{"200":{"description":"GET /hris/legal-entities Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisLegalEntitiesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"49","name":"ACME Inc.","address":{"city":"Berlin","country":"DE","raw":"Sonnenallee 63\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}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/timesheets":{"get":{"operationId":"GetHrisTimesheets","summary":"Get timesheets","description":"Get timesheets\n\nRetrieve attendance data and timesheets from HRIS tools.\n\n**Open Beta Feature:** This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation.\n\nFor a detailed explanation of the data model, validation rules, time zones, payable hours, approvals, and break patterns, see the [Time & Attendance guide](/hris/features/time-and-attendance).\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisTimesheetsParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterRemoteIds"}},{"name":"employee_id","in":"query","required":false,"description":"Returns timesheets for a specific employee.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterEmployeeId"}},{"name":"started_before","in":"query","required":false,"description":"Return timesheets whose start time is before the given timestamp.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterStartedBefore"}},{"name":"started_after","in":"query","required":false,"description":"Return timesheets whose start time is on or after the given timestamp.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterStartedAfter"}},{"name":"ended_before","in":"query","required":false,"description":"Return timesheets whose end time is on or before the given timestamp.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterEndedBefore"}},{"name":"ended_after","in":"query","required":false,"description":"Return timesheets whose end time is on or after the given timestamp.","schema":{"$ref":"#/components/schemas/GetHrisTimesheetsParameterEndedAfter"}}],"responses":{"200":{"description":"GET /hris/timesheets Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisTimesheetsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"C1BB1C36-FE1D-4185-AAB8-0716D8FBA017","remote_id":"446655440000","employee_id":"289AD550-8659-4305-92B2-6EAA006AAB17","started_at":"2025-04-16T09:02:00.000Z","ended_at":"2025-04-16T16:59:00.000Z","timezone":"-04:00","payable_hours":8,"unpaid_break_minutes":30,"breaks":[{"ended_at":"2025-04-16T12:30:00.000Z","paid":false,"started_at":"2025-04-16T12:00:00.000Z"}],"approval_status":"APPROVED","approved_at":"2025-04-16T17:05:31.000Z","comment":"Sprint planning & code review","custom_fields":{},"integration_fields":[],"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":{}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/performance-review-cycles":{"get":{"operationId":"GetHrisPerformanceReviewCycles","summary":"Get performance review cycles","description":"Get performance review cycles\n\nRetrieve performance review cycles data from HRIS tools.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisPerformanceReviewCyclesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesParameterRemoteIds"}}],"responses":{"200":{"description":"GET /hris/performance-review-cycles Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewCyclesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"1","name":"2025 Annual Performance Review Cycle","review_period_start_date":"2025-01-01T00:00:00.000Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/performance-reviews":{"get":{"operationId":"GetHrisPerformanceReviews","summary":"Get performance reviews","description":"Get performance reviews\n\nRetrieve performance review data from HRIS tools.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisPerformanceReviewsParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterRemoteIds"}},{"name":"types","in":"query","required":false,"description":"Filter by a comma-separated list of `MANAGER`, `DIRECT_REPORT`, `PEER`, `SELF` \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterTypes"}},{"name":"review_cycle_ids","in":"query","required":false,"description":"Filter by a comma-separated list of review cycle IDs.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterReviewCycleIds"}},{"name":"reviewee_ids","in":"query","required":false,"description":"Filter by a comma-separated list of reviewee IDs.","schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsParameterRevieweeIds"}}],"responses":{"200":{"description":"GET /hris/performance-reviews Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisPerformanceReviewsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"1","type":"MANAGER","summary_comment":"Good job this year! Let's keep it up for 2024!","summary_rating":{"ordered_options":["Needs improvement","Below expectations","Meets expectations","Exceeds expectations","Exceptional"],"type":"SINGLE_SELECT","value":"Exceeds expectations"},"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null,"reviewee":{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","first_name":"John","last_name":"Doe","display_full_name":"John Doe","work_email":"john.doe@acme.com","remote_deleted_at":null},"reviewer":{"id":"4EeSSSd9Fr8iiW9mPKmjEVWK","remote_id":"1024","first_name":"Peter","last_name":"Doe","display_full_name":"Peter Doe","work_email":"peter.doe@acme.com","remote_deleted_at":null},"review_cycle":{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"1","name":"2025 Annual Performance Review Cycle","review_period_start_date":"2025-01-01T00:00:00.000Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/skills":{"get":{"operationId":"GetHrisSkills","summary":"Get skills","description":"Get skills\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nRetrieve all skills available in the HRIS system. Skills are available on employees and job positions.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisSkillsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisSkillsParameterRemoteIds"}},{"name":"name_contains","in":"query","required":false,"description":"Filter by the `name` field. Can be used to find a skills by keywords present in the skill name.","schema":{"$ref":"#/components/schemas/GetHrisSkillsParameterNameContains"}}],"responses":{"200":{"description":"GET /hris/skills Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisSkillsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"28KMdr68N8kG9EzLwjsN9aoz","remote_id":"238476582","name":"TypeScript Programming","description":"The ability understand and write TypeScript code.","ordered_levels":["Proficiency Level 1","Proficiency Level 2","Proficiency Level 3","Proficiency Level 4","Proficiency Level 5"],"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"post":{"operationId":"PostHrisSkills","summary":"Create skill","description":"Create skill\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nCreate a new skill in the HRIS system with specified name and levels. Refer to our coverage grid for support of levels.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /hris/skills Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisSkillsRequestBody"},"examples":{"example1":{"value":{"name":"TypeScript Programming"}}}}}},"responses":{"200":{"description":"POST /hris/skills Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisSkillsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"28KMdr68N8kG9EzLwjsN9aoz","remote_id":"238476582","name":"TypeScript Programming","description":"The ability understand and write TypeScript code.","ordered_levels":["Proficiency Level 1","Proficiency Level 2","Proficiency Level 3","Proficiency Level 4","Proficiency Level 5"],"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/skills/{skill_id}":{"patch":{"operationId":"PatchHrisSkillsSkillId","summary":"Update skill","description":"Update skill\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nUpdate an existing skill in the HRIS system.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"skill_id","in":"path","required":true,"description":"The ID of the skill","schema":{"$ref":"#/components/schemas/PatchHrisSkillsSkillIdParameterSkillId"}}],"requestBody":{"description":"PATCH /hris/skills/:skill_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchHrisSkillsSkillIdRequestBody"}}}},"responses":{"200":{"description":"PATCH /hris/skills/:skill_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchHrisSkillsSkillIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"28KMdr68N8kG9EzLwjsN9aoz","remote_id":"238476582","name":"TypeScript Programming","description":"The ability understand and write TypeScript code.","ordered_levels":["Proficiency Level 1","Proficiency Level 2","Proficiency Level 3","Proficiency Level 4","Proficiency Level 5"],"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"remote_data":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"delete":{"operationId":"DeleteHrisSkillsSkillId","summary":"Delete skill","description":"Delete skill\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nDelete a skill from the HRIS system.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"skill_id","in":"path","required":true,"description":"The ID of the skill","schema":{"$ref":"#/components/schemas/DeleteHrisSkillsSkillIdParameterSkillId"}}],"requestBody":{"description":"DELETE /hris/skills/:skill_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHrisSkillsSkillIdRequestBody"}}}},"responses":{"200":{"description":"DELETE /hris/skills/:skill_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHrisSkillsSkillIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"28KMdr68N8kG9EzLwjsN9aoz","remote_id":"238476582","name":"TypeScript Programming","description":"The ability understand and write TypeScript code.","ordered_levels":["Proficiency Level 1","Proficiency Level 2","Proficiency Level 3","Proficiency Level 4","Proficiency Level 5"],"changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":"2022-08-07T14:01:29.196Z","remote_data":null}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employee-skill-assignments":{"get":{"operationId":"GetHrisEmployeeSkillAssignments","summary":"Get employee skill assignments","description":"Get employee skill assignments\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nRetrieve all employee skill assignments. These represent the skills that employees possess and their current proficiency levels.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterRemoteIds"}},{"name":"employee_ids","in":"query","required":false,"description":"Filter by a comma-separated list of employee IDs.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterEmployeeIds"}},{"name":"skill_ids","in":"query","required":false,"description":"Filter by a comma-separated list of skill IDs.","schema":{"$ref":"#/components/schemas/GetHrisEmployeeSkillAssignmentsParameterSkillIds"}}],"responses":{"200":{"description":"GET /hris/employee-skill-assignments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisEmployeeSkillAssignmentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"8AvRLpxwY5J6pGxfY6fUD81Z","employee_id":"26vafvWSRmbhNcxJYqjCzuJg","skill_id":"28KMdr68N8kG9EzLwjsN9aoz","current_level":"Proficiency Level 1"}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"post":{"operationId":"PostHrisEmployeeSkillAssignments","summary":"Create employee skill assignment","description":"Create employee skill assignment\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nAssign a skill to an employee with a specified skill level.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /hris/employee-skill-assignments Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeeSkillAssignmentsRequestBody"}}}},"responses":{"200":{"description":"POST /hris/employee-skill-assignments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostHrisEmployeeSkillAssignmentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"8AvRLpxwY5J6pGxfY6fUD81Z","employee_id":"26vafvWSRmbhNcxJYqjCzuJg","skill_id":"28KMdr68N8kG9EzLwjsN9aoz","current_level":"Proficiency Level 1"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/employee-skill-assignments/{employee_skill_assignment_id}":{"patch":{"operationId":"PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentId","summary":"Update employee skill assignment","description":"Update employee skill assignment\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nUpdate the skill level for an employee skill assignment.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_skill_assignment_id","in":"path","required":true,"description":"The ID of the employee skill assignment","schema":{"$ref":"#/components/schemas/PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId"}}],"requestBody":{"description":"PATCH /hris/employee-skill-assignments/:employee_skill_assignment_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody"}}}},"responses":{"200":{"description":"PATCH /hris/employee-skill-assignments/:employee_skill_assignment_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"8AvRLpxwY5J6pGxfY6fUD81Z","employee_id":"26vafvWSRmbhNcxJYqjCzuJg","skill_id":"28KMdr68N8kG9EzLwjsN9aoz","current_level":"Proficiency Level 1"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}},"delete":{"operationId":"DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentId","summary":"Delete employee skill assignment","description":"Delete employee skill assignment\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n\n\nRemove a skill assignment from an employee.","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"employee_skill_assignment_id","in":"path","required":true,"description":"The ID of the employee skill assignment","schema":{"$ref":"#/components/schemas/DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdParameterEmployeeSkillAssignmentId"}}],"requestBody":{"description":"DELETE /hris/employee-skill-assignments/:employee_skill_assignment_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdRequestBody"}}}},"responses":{"200":{"description":"DELETE /hris/employee-skill-assignments/:employee_skill_assignment_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteHrisEmployeeSkillAssignmentsEmployeeSkillAssignmentIdPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"8AvRLpxwY5J6pGxfY6fUD81Z","employee_id":"26vafvWSRmbhNcxJYqjCzuJg","skill_id":"28KMdr68N8kG9EzLwjsN9aoz","current_level":"Proficiency Level 1"}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/hris/staffing-entities":{"get":{"operationId":"GetHrisStaffingEntities","summary":"Get staffing entities","description":"Retrieve all staffing entities.\n\nRetrieve all staffing entities (positions, requisitions, and jobs) from the HRIS system.\n\nMany enterprise HRIS platforms distinguish between **positions**, **requisitions**, and **jobs** — three related but different concepts used to manage headcount and hiring. Not every HRIS uses all three, and naming varies across systems, but here is a general overview:\n\n- **Position**: A slot in the organizational structure that represents a role to be filled (or already filled) by one or more employees. Positions typically carry metadata like department, location, cost center, and reporting line. Think of it as \"a chair at a desk\" — it exists whether someone is sitting in it or not.\n- **Requisition**: A formal request to fill a position. When a manager wants to hire for an open position, they usually create a requisition that goes through an approval workflow. Requisitions are time-bound and tied to a specific hiring need. In Kombo's data model, a requisition's `parent_id` points to the position it was opened for.\n- **Job**: Some systems use \"job\" as a more generic or lightweight alternative to a requisition. Jobs often represent an ongoing, unlimited hiring need (e.g., a company that is always hiring for \"Software Engineer\") rather than a one-off backfill. This is reflected in the `OPEN_UNLIMITED` status.\n\nYou can use the `model_types` filter to retrieve only the type(s) relevant to your use case. Each record's `model_type` field tells you which of the three concepts it represents.\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified HRIS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"bamboohr:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"cursor","in":"query","required":false,"description":"An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterPageSize"}},{"name":"updated_after","in":"query","required":false,"description":"Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.\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/GetHrisStaffingEntitiesParameterUpdatedAfter"}},{"name":"include_deleted","in":"query","required":false,"description":"By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterIncludeDeleted"}},{"name":"ignore_unsupported_filters","in":"query","required":false,"description":"When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterRemoteIds"}},{"name":"model_types","in":"query","required":false,"description":"Filter by a comma-separated list of `JOB`, `POSITION`, `REQUISITION` \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterModelTypes"}},{"name":"statuses","in":"query","required":false,"description":"Filter by a comma-separated list of `OPEN_LIMITED`, `OPEN_UNLIMITED`, `PENDING`, `FROZEN`, `FILLED`, `CLOSED` \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesParameterStatuses"}}],"responses":{"200":{"description":"GET /hris/staffing-entities Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetHrisStaffingEntitiesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"next":"eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=","results":[{"id":"26vafvWSRmbhNcxJYqjCzuJg","remote_id":"32","name":"Software Engineer","model_type":"POSITION","description":"Description of the position","status":"OPEN_UNLIMITED","employment_types":[{"remote_label":"Vollzeit","unified_type":"FULL_TIME"}],"number_of_openings":null,"parent_id":"KGaJ5XaVPob8mYVfD49W4DGB","remote_url":"https://example.com/position/32","remote_created_at":"2022-08-07T14:01:29.196Z","remote_updated_at":"2022-08-07T14:01:29.196Z","changed_at":"2022-08-07T14:01:29.196Z","remote_deleted_at":null,"custom_fields":{},"integration_fields":[],"remote_data":null,"locations":[{"id":"22st2Ji8XpncEYEak8mvQgQF","remote_id":"1348","name":"Kombo HQ","type":"OFFICE"}],"legal_entities":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"49","name":"ACME Inc."}],"groups":[{"id":"4B9bKBpX5tnwjiG93TAqF7ci","remote_id":"49","name":"Customer Success","type":"TEAM"}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseHRIS"}}}},"/ats/applications":{"get":{"operationId":"GetAtsApplications","summary":"Get applications","description":"Retrieve all applications.\n\nVisit our in-depth guides to learn more about:\n\n- 💡 [Being aware of which applications are tracked](/ats/features/implementation-guide/tracking-created-applications#be-aware-of-which-applications-are-tracked)\n- 🚦 [Hiring signals](/ats/features/implementation-guide/tracking-created-applications#hiring-signals)\n- 📈 [Application stage changes](/ats/features/implementation-guide/tracking-created-applications#application-stage-changes)\n- ❓ [ATS-specific limitations](/ats/features/implementation-guide/tracking-created-applications#ats-specific-limitations)\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsApplicationsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterPageSize"}},{"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/GetAtsApplicationsParameterUpdatedAfter"}},{"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/GetAtsApplicationsParameterIncludeDeleted"}},{"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/GetAtsApplicationsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterRemoteIds"}},{"name":"outcome","in":"query","required":false,"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`.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterOutcome"}},{"name":"outcomes","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterOutcomes"}},{"name":"job_ids","in":"query","required":false,"description":"Filter by a comma-separated list of job IDs. We will only return applications that are related to _any_ of the jobs.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterJobIds"}},{"name":"job_remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of job remote IDs. We will only return applications that are related to _any_ of the jobs.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterJobRemoteIds"}},{"name":"current_stage_ids","in":"query","required":false,"description":"Filter by a comma-separated list of application stage IDs. We will only return applications that are currently in _any_ of the stages.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterCurrentStageIds"}},{"name":"remote_created_after","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsParameterRemoteCreatedAfter"}}],"responses":{"200":{"description":"GET /ats/applications Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsApplicationsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/applications/{application_id}/stage":{"put":{"operationId":"PutAtsApplicationsApplicationIdStage","summary":"Move application to stage","description":"Moves an application to a specified stage. Use job-specific stages from GET /jobs, not the deprecated /application-stages endpoint.\n\n\n This endpoint requires the permission **Set application stage** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"stage_id\": \"3PJ8PZhZZa1eEdd2DtPNtVup\"\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The Kombo ID of the application you want to move to a different stage.","schema":{"$ref":"#/components/schemas/PutAtsApplicationsApplicationIdStageParameterApplicationId"},"examples":{"example1":{"value":"GRKdd9dibYKKCrmGRSMJf3wu"}}}],"requestBody":{"description":"PUT /ats/applications/:application_id/stage Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutAtsApplicationsApplicationIdStageRequestBody"},"examples":{"example1":{"value":{"stage_id":"3PJ8PZhZZa1eEdd2DtPNtVup"}}}}}},"responses":{"200":{"description":"PUT /ats/applications/:application_id/stage Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutAtsApplicationsApplicationIdStagePositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/applications/{application_id}/result-links":{"post":{"operationId":"PostAtsApplicationsApplicationIdResultLinks","summary":"Add result link to application","description":"Add a result link to an application.\n\nThis can, for example, be used to link a candidate back to a test result/assessment in your application. As not all ATS tools have a \"result link\" feature, we sometimes repurpose other fields to expose it.\n\n\n This endpoint requires the permission **Add result links** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"application_id\": \"8Xi6iZrwusZqJmDGXs49GBmJ\",\n \"label\": \"Assessment Result\",\n \"url\": \"https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG\",\n \"details\": {\n \"custom_field_name_prefix\": \"Acme:\",\n \"attributes\": [\n {\n \"key\": \"Score\",\n \"value\": \"100%\"\n },\n {\n \"key\": \"Time\",\n \"value\": \"2:30h\"\n }\n ]\n },\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The Kombo ID of the application you want to create the link for.","schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdResultLinksParameterApplicationId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"requestBody":{"description":"POST /ats/applications/:application_id/result-links Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdResultLinksRequestBody"},"examples":{"example1":{"value":{"label":"Assessment Result","url":"https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG","details":{"custom_field_name_prefix":"Acme:","attributes":[{"key":"Score","value":"100%"},{"key":"Time","value":"2:30h"}]}}}}}}},"responses":{"200":{"description":"POST /ats/applications/:application_id/result-links Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdResultLinksPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/applications/{application_id}/notes":{"post":{"operationId":"PostAtsApplicationsApplicationIdNotes","summary":"Add note to application","description":"Add a note to an application.\n\nAdd extra information to an application. This can be any extra text information you want to add to an application.\n\n\n This endpoint requires the permission **Add notes** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"content\": \"A new message from the candidate is available in YourChat!\",\n \"content_type\": \"PLAIN_TEXT\",\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The Kombo ID of the application you want to create the note for.","schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdNotesParameterApplicationId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"requestBody":{"description":"POST /ats/applications/:application_id/notes Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdNotesRequestBody"},"examples":{"example1":{"value":{"content":"A new message from the candidate is available in YourChat!","content_type":"PLAIN_TEXT"}}}}}},"responses":{"200":{"description":"POST /ats/applications/:application_id/notes Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdNotesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/applications/{application_id}/attachments":{"get":{"operationId":"GetAtsApplicationsApplicationIdAttachments","summary":"Get application attachments","description":"Get attachments from a candidate or application.\n\nGet attachments from an application. If the ATS stores the attachments on the candidate, it will get the attachments from the corresponding candidate instead.\n\n\n This endpoint requires the permission **Read document attachments** to be enabled in [your scope config](/scopes).\n","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The Kombo ID of the application you want to obtain attachments for.","schema":{"$ref":"#/components/schemas/GetAtsApplicationsApplicationIdAttachmentsParameterApplicationId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"responses":{"200":{"description":"GET /ats/applications/:application_id/attachments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsApplicationsApplicationIdAttachmentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}},"post":{"operationId":"PostAtsApplicationsApplicationIdAttachments","summary":"Add attachment to application","description":"Uploads an attachment file for the specified applicant.\n\n\n If adding an attachment to an application is not supported by the integration, the attachment will be [added to the candidate](/ats/v1/post-candidates-candidate-id-attachments) instead. \n\n\n\n This endpoint requires the permission **Add attachments** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"application_id\": \"GRKdd9dibYKKCrmGRSMJf3wu\",\n \"attachment\": {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n },\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"POST /ats/applications/:application_id/attachments Parameter","schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId"},"examples":{"example1":{"value":"GRKdd9dibYKKCrmGRSMJf3wu"}}}],"requestBody":{"description":"POST /ats/applications/:application_id/attachments Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdAttachmentsRequestBody"},"examples":{"example1":{"value":{"attachment":{"name":"Frank Doe CV.txt","data":"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=","type":"CV","content_type":"text/plain"}}}}}}},"responses":{"200":{"description":"POST /ats/applications/:application_id/attachments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdAttachmentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/applications/{application_id}/reject":{"post":{"operationId":"PostAtsApplicationsApplicationIdReject","summary":"Reject application","description":"Rejects an application with a provided reason.\n\nRejects an application with a provided reason. Optionally, you can provide a free text note. You can get the list of rejection reasons with our [Get rejection reasons endpoint](/ats/v1/get-rejection-reasons).\n\n\n This endpoint requires the permission **Reject applications** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"rejection_reason_id\": \"3PJ8PZhZZa1eEdd2DtPNtVup\",\n \"note\": \"Candidate was a great culture fit but didn't bring the hard skills we need.\",\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The Kombo ID of the application you want to reject.","schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdRejectParameterApplicationId"},"examples":{"example1":{"value":"GRKdd9dibYKKCrmGRSMJf3wu"}}}],"requestBody":{"description":"POST /ats/applications/:application_id/reject Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdRejectRequestBody"},"examples":{"example1":{"value":{"rejection_reason_id":"3PJ8PZhZZa1eEdd2DtPNtVup","note":"Candidate was a great culture fit but didn't bring the hard skills we need."}}}}}},"responses":{"200":{"description":"POST /ats/applications/:application_id/reject Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdRejectPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/applications/{application_id}/interviews":{"post":{"operationId":"PostAtsApplicationsApplicationIdInterviews","summary":"Create interview","description":"Create interview\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The ID of the application","schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdInterviewsParameterApplicationId"}}],"requestBody":{"description":"POST /ats/applications/:application_id/interviews Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdInterviewsRequestBody"}}}},"responses":{"200":{"description":"POST /ats/applications/:application_id/interviews Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsApplicationsApplicationIdInterviewsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}},"patch":{"operationId":"PatchAtsApplicationsApplicationIdInterviews","summary":"Update interview","description":"Update interview\n\n\n\n**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.\n\n","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"application_id","in":"path","required":true,"description":"The ID of the application","schema":{"$ref":"#/components/schemas/PatchAtsApplicationsApplicationIdInterviewsParameterApplicationId"}}],"requestBody":{"description":"PATCH /ats/applications/:application_id/interviews Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAtsApplicationsApplicationIdInterviewsRequestBody"}}}},"responses":{"200":{"description":"PATCH /ats/applications/:application_id/interviews Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAtsApplicationsApplicationIdInterviewsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/candidates":{"get":{"operationId":"GetAtsCandidates","summary":"Get candidates","description":"Retrieve all candidates.\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsCandidatesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterPageSize"}},{"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/GetAtsCandidatesParameterUpdatedAfter"}},{"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/GetAtsCandidatesParameterIncludeDeleted"}},{"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/GetAtsCandidatesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterRemoteIds"}},{"name":"email","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterEmail"}},{"name":"job_ids","in":"query","required":false,"description":"Filter by a comma-separated list of job IDs. We will only return candidates that have applied to _any_ of the jobs.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterJobIds"}},{"name":"first_name","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterFirstName"}},{"name":"last_name","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesParameterLastName"}}],"responses":{"200":{"description":"GET /ats/candidates Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsCandidatesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}},"post":{"operationId":"PostAtsCandidates","summary":"Create candidate","description":"Create a new candidate and application for the specified job.\n\n\n **We recommend using the [Create application](/ats/v1/post-jobs-job-id-applications) endpoint instead.**\n\n We realized that in practice it was always more about creating _applications_ instead of _candidates_, so we created a new, more aptly named one that you should use instead: [Create application](/ats/v1/post-jobs-job-id-applications)\n\n Using it also has the benefit that we return the newly created applicant at the root level, so you can easily store its ID.\n \n\n\n This endpoint requires the permission **Create applications and candidates** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"candidate\": {\n \"first_name\": \"Frank\",\n \"last_name\": \"Doe\",\n \"company\": \"Acme Inc.\",\n \"title\": \"Head of Integrations\",\n \"email_address\": \"frank.doe@example.com\",\n \"phone_number\": \"+1-541-754-3010\",\n \"gender\": \"MALE\",\n \"salary_expectations\": {\n \"amount\": 100000,\n \"period\": \"YEAR\"\n },\n \"availability_date\": \"2021-01-01\",\n \"location\": {\n \"city\": \"New York\",\n \"country\": \"US\",\n \"state\": \"NY\"\n },\n \"social_links\": [\n {\n \"url\": \"https://www.linkedin.com/in/frank-doe-123456789/\"\n },\n {\n \"url\": \"https://twitter.com/frankdoe\"\n }\n ]\n },\n \"application\": {\n \"job_id\": \"BDpgnpZ148nrGh4mYHNxJBgx\",\n \"stage_id\": \"8x3YKRDcuRnwShdh96ShBNn1\"\n },\n \"attachments\": [\n {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n ],\n \"screening_question_answers\": [\n {\n \"question_id\": \"3phFBNXRweGnDmsU9o2vdPuQ\",\n \"answer\": \"Yes\"\n },\n {\n \"question_id\": \"EYJjhMQT3LtVKXnTbnRT8s6U\",\n \"answer\": [\n \"GUzE666zfyjeoCJX6A8n7wh6\",\n \"5WPHzzKAv8cx97KtHRUV96U8\",\n \"7yZfKGzWigXxxRTygqAfHvyE\"\n ]\n }\n ],\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /ats/candidates Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesRequestBody"},"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","country":"US","state":"NY"},"social_links":[{"url":"https://www.linkedin.com/in/frank-doe-123456789/"},{"url":"https://twitter.com/frankdoe"}]},"application":{"job_id":"BDpgnpZ148nrGh4mYHNxJBgx","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 /ats/candidates Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/candidates/{candidate_id}/attachments":{"get":{"operationId":"GetAtsCandidatesCandidateIdAttachments","summary":"Get candidate attachments","description":"Get attachments from a candidate, including all attachments of all of their applications.\n\n\n This endpoint requires the permission **Read document attachments** to be enabled in [your scope config](/scopes).\n","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"candidate_id","in":"path","required":true,"description":"The Kombo ID of the candidate you want to obtain attachments for.","schema":{"$ref":"#/components/schemas/GetAtsCandidatesCandidateIdAttachmentsParameterCandidateId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"responses":{"200":{"description":"GET /ats/candidates/:candidate_id/attachments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsCandidatesCandidateIdAttachmentsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}},"post":{"operationId":"PostAtsCandidatesCandidateIdAttachments","summary":"Add attachment to candidate","description":"Uploads an attachment file for the specified candidate.\n\n\n **We recommend using the [add attachment to application](/ats/v1/post-applications-application-id-attachments) endpoint instead.**\n\n We realized that in practice it was always more about adding attachments to _applications_ instead of _candidates_, so we created a new, more aptly named one that you should use instead: [add attachment to application](/ats/v1/post-applications-application-id-attachments)\n \n\n\n This endpoint requires the permission **Add attachments** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"candidate_id\": \"GRKdd9dibYKKCrmGRSMJf3wu\",\n \"attachment\": {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"candidate_id","in":"path","required":true,"description":"The Kombo ID of the candidate you want to add the attachment to.","schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId"},"examples":{"example1":{"value":"GRKdd9dibYKKCrmGRSMJf3wu"}}}],"requestBody":{"description":"POST /ats/candidates/:candidate_id/attachments Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdAttachmentsRequestBody"},"examples":{"example1":{"value":{"attachment":{"name":"Frank Doe CV.txt","data":"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=","type":"CV","content_type":"text/plain"}}}}}}},"responses":{"200":{"description":"POST /ats/candidates/:candidate_id/attachments Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdAttachmentsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/candidates/{candidate_id}/result-links":{"post":{"operationId":"PostAtsCandidatesCandidateIdResultLinks","summary":"Add result link to candidate","description":"Add a result link to a candidate.\n\n\n **We recommend to use [add result link to application](/ats/v1/post-applications-application-id-result-links) instead.**\n\n This can, for example, be used to link a candidate back to a test result/assessment in your application. As not all ATS tools have a \"result link\" feature, we sometimes repurpose other fields to expose it.\n\n \n \n\n\n This endpoint requires the permission **Add result links** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"label\": \"Assessment Result\",\n \"url\": \"https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG\",\n \"details\": {\n \"custom_field_name_prefix\": \"Acme:\",\n \"attributes\": [\n {\n \"key\": \"Score\",\n \"value\": \"100%\"\n },\n {\n \"key\": \"Time\",\n \"value\": \"2:30h\"\n }\n ]\n },\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"candidate_id","in":"path","required":true,"description":"The Kombo ID of the candidate you want to add the result link to.","schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdResultLinksParameterCandidateId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"requestBody":{"description":"POST /ats/candidates/:candidate_id/result-links Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdResultLinksRequestBody"},"examples":{"example1":{"value":{"label":"Assessment Result","url":"https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG","details":{"custom_field_name_prefix":"Acme:","attributes":[{"key":"Score","value":"100%"},{"key":"Time","value":"2:30h"}]}}}}}}},"responses":{"200":{"description":"POST /ats/candidates/:candidate_id/result-links Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdResultLinksPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/candidates/{candidate_id}/tags":{"post":{"operationId":"PostAtsCandidatesCandidateIdTags","summary":"Add tag to candidate","description":"Add a tag to a candidate.\n\nKombo takes care of creating the tag if required, finding out the right ID, and appending it to the list of tags.\n\n\n This endpoint requires the permission **Manage tags** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"tag\": {\n \"name\": \"Excellent Fit\"\n }\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"candidate_id","in":"path","required":true,"description":"The Kombo ID of the candidate you want to add the tag to.","schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdTagsParameterCandidateId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"requestBody":{"description":"POST /ats/candidates/:candidate_id/tags Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdTagsRequestBody"},"examples":{"example1":{"value":{"tag":{"name":"Excellent Fit"}}}}}}},"responses":{"200":{"description":"POST /ats/candidates/:candidate_id/tags Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCandidatesCandidateIdTagsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}},"delete":{"operationId":"DeleteAtsCandidatesCandidateIdTags","summary":"Remove tag from candidate","description":"Remove a tag from a candidate based on its name.\n\nThis will also succeed if the tag does not exist on the candidate.\n\n\n This endpoint requires the permission **Manage tags** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"tag\": {\n \"name\": \"Excellent Fit\"\n }\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"candidate_id","in":"path","required":true,"description":"The Kombo ID of the candidate you want to remove the tag from.","schema":{"$ref":"#/components/schemas/DeleteAtsCandidatesCandidateIdTagsParameterCandidateId"},"examples":{"example1":{"value":"8Xi6iZrwusZqJmDGXs49GBmJ"}}}],"requestBody":{"description":"DELETE /ats/candidates/:candidate_id/tags Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAtsCandidatesCandidateIdTagsRequestBody"},"examples":{"example1":{"value":{"tag":{"name":"Excellent Fit"}}}}}}},"responses":{"200":{"description":"DELETE /ats/candidates/:candidate_id/tags Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAtsCandidatesCandidateIdTagsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/tags":{"get":{"operationId":"GetAtsTags","summary":"Get tags","description":"Retrieve all tags.\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsTagsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsTagsParameterPageSize"}},{"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/GetAtsTagsParameterUpdatedAfter"}},{"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/GetAtsTagsParameterIncludeDeleted"}},{"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/GetAtsTagsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsTagsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsTagsParameterRemoteIds"}}],"responses":{"200":{"description":"GET /ats/tags Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsTagsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/application-stages":{"get":{"operationId":"GetAtsApplicationStages","summary":"Get application stages","description":"Get all application stages available in the ATS.\n\n\n **This endpoint is deprecated!**\n\n Get all application stages available in the ATS. This is deprecated because most ATS systems have separate sets of stages for each job. We'd recommend using the `stages` property from the [GET Jobs endpoint](/ats/v1/get-jobs) instead.\n\n**Important**: Using global stages can cause \"Stage not found\" errors when moving applications, especially with systems like Workable that have job-specific stages.\n\n[Moving Applications Guide](/ats/implementation-guide/moving-and-rejecting-candidates).\n\n\nTop level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsApplicationStagesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsApplicationStagesParameterPageSize"}},{"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/GetAtsApplicationStagesParameterUpdatedAfter"}},{"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/GetAtsApplicationStagesParameterIncludeDeleted"}},{"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/GetAtsApplicationStagesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsApplicationStagesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsApplicationStagesParameterRemoteIds"}}],"responses":{"200":{"description":"GET /ats/application-stages Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsApplicationStagesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/jobs":{"get":{"operationId":"GetAtsJobs","summary":"Get jobs","description":"Retrieve all jobs.\n\nVisit our in-depth guides to learn more about:\n\n- 🔄 [Getting updates of the data](/ats/features/implementation-guide/reading-jobs#getting-updates-of-the-data)\n- ❗ [Handling failing syncs](/ats/features/implementation-guide/reading-jobs#handling-failing-syncs)\n- 🔍 [Letting your customer choose which jobs to expose](/ats/features/implementation-guide/reading-jobs#let-your-customer-choose-which-jobs-to-expose-to-you)\n- 🔗 [Matching jobs in your database to ATS jobs](/ats/features/implementation-guide/reading-jobs#match-jobs-in-your-database-to-ats-jobs)\n- 🗑️ [Reacting to deleted/closed jobs](/ats/features/implementation-guide/reading-jobs#reacting-to-deleted-closed-jobs)\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsJobsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterPageSize"}},{"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/GetAtsJobsParameterUpdatedAfter"}},{"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/GetAtsJobsParameterIncludeDeleted"}},{"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/GetAtsJobsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterRemoteIds"}},{"name":"job_codes","in":"query","required":false,"description":"Filter by a comma-separated list of job codes.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterJobCodes"}},{"name":"post_url","in":"query","required":false,"description":"Filter by the `post_url` field. Can be used to find a job based on its public posting URL.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterPostUrl"}},{"name":"status","in":"query","required":false,"description":"**(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the `status` field. Can be used to find a job based on its status.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterStatus"}},{"name":"statuses","in":"query","required":false,"description":"Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, `ARCHIVED` \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterStatuses"}},{"name":"employment_types","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterEmploymentTypes"}},{"name":"visibilities","in":"query","required":false,"description":"Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, `CONFIDENTIAL` \n\nLeave this blank to get results matching all values.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterVisibilities"}},{"name":"remote_created_after","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterRemoteCreatedAfter"}},{"name":"name_contains","in":"query","required":false,"description":"Filter by the `name` field. Can be used to find a job by keywords present in the job name.","schema":{"$ref":"#/components/schemas/GetAtsJobsParameterNameContains"}}],"responses":{"200":{"description":"GET /ats/jobs Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsJobsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}]}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/jobs/{job_id}/applications":{"post":{"operationId":"PostAtsJobsJobIdApplications","summary":"Create application","description":"Create a new application and candidate for the specified job.\n\nVisit our in-depth guides to learn more about:\n\n- 🌐 [Setting the source of the application](/ats/features/implementation-guide/creating-applications#set-the-source-of-the-application) \n- 📎 [Uploading attachments with the application](/ats/features/implementation-guide/creating-applications#upload-attachments-with-the-application) \n- ♻️ [Retry behaviour](/ats/features/implementation-guide/creating-applications#retry-behaviour) \n- ✏️ [Writing answers to screening questions](/ats/features/implementation-guide/creating-applications#write-answers-to-screening-questions) \n- ⚠️ [Handling ATS-specific limitations](/ats/features/implementation-guide/creating-applications#handle-ats-specific-limitations)\n\n\n This endpoint requires the permission **Create applications and candidates** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"candidate\": {\n \"first_name\": \"Frank\",\n \"last_name\": \"Doe\",\n \"company\": \"Acme Inc.\",\n \"title\": \"Head of Integrations\",\n \"email_address\": \"frank.doe@example.com\",\n \"phone_number\": \"+1-541-754-3010\",\n \"gender\": \"MALE\",\n \"salary_expectations\": {\n \"amount\": 100000,\n \"period\": \"YEAR\"\n },\n \"availability_date\": \"2021-01-01\",\n \"location\": {\n \"city\": \"New York\",\n \"zip_code\": \"10016\",\n \"state\": \"NY\",\n \"country\": \"US\"\n }\n },\n \"stage_id\": \"8x3YKRDcuRnwShdh96ShBNn1\",\n \"attachments\": [\n {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n ],\n \"screening_question_answers\": [\n {\n \"question_id\": \"3phFBNXRweGnDmsU9o2vdPuQ\",\n \"answer\": \"Yes\"\n },\n {\n \"question_id\": \"EYJjhMQT3LtVKXnTbnRT8s6U\",\n \"answer\": [\n \"GUzE666zfyjeoCJX6A8n7wh6\",\n \"5WPHzzKAv8cx97KtHRUV96U8\",\n \"7yZfKGzWigXxxRTygqAfHvyE\"\n ]\n }\n ],\n \"remote_fields\": {}\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"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/PostAtsJobsJobIdApplicationsParameterJobId"},"examples":{"example1":{"value":"BDpgnpZ148nrGh4mYHNxJBgx"}}}],"requestBody":{"description":"POST /ats/jobs/:job_id/applications Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsJobsJobIdApplicationsRequestBody"},"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 /ats/jobs/:job_id/applications Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsJobsJobIdApplicationsPositiveResponse"},"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"}]}},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/users":{"get":{"operationId":"GetAtsUsers","summary":"Get users","description":"Retrieve all users.\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsUsersParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsUsersParameterPageSize"}},{"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/GetAtsUsersParameterUpdatedAfter"}},{"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/GetAtsUsersParameterIncludeDeleted"}},{"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/GetAtsUsersParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsUsersParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsUsersParameterRemoteIds"}},{"name":"emails","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsUsersParameterEmails"}}],"responses":{"200":{"description":"GET /ats/users Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsUsersPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}]}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/roles":{"get":{"operationId":"GetAtsRoles","summary":"Get roles","description":"Retrieve all roles.\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsRolesParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsRolesParameterPageSize"}},{"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/GetAtsRolesParameterUpdatedAfter"}},{"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/GetAtsRolesParameterIncludeDeleted"}},{"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/GetAtsRolesParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsRolesParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsRolesParameterRemoteIds"}},{"name":"scopes","in":"query","required":false,"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.","schema":{"$ref":"#/components/schemas/GetAtsRolesParameterScopes"}}],"responses":{"200":{"description":"GET /ats/roles Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsRolesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/offers":{"get":{"operationId":"GetAtsOffers","summary":"Get offers","description":"Retrieve all offers.\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsOffersParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsOffersParameterPageSize"}},{"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/GetAtsOffersParameterUpdatedAfter"}},{"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/GetAtsOffersParameterIncludeDeleted"}},{"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/GetAtsOffersParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsOffersParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsOffersParameterRemoteIds"}}],"responses":{"200":{"description":"GET /ats/offers Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsOffersPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/rejection-reasons":{"get":{"operationId":"GetAtsRejectionReasons","summary":"Get rejection reasons","description":"Retrieve all rejection reasons.\n\nGet all rejection reasons available in the system. The Kombo ID is required in the associated [reject application action](/ats/v1/post-applications-application-id-reject).\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsRejectionReasonsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsRejectionReasonsParameterPageSize"}},{"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/GetAtsRejectionReasonsParameterUpdatedAfter"}},{"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/GetAtsRejectionReasonsParameterIncludeDeleted"}},{"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/GetAtsRejectionReasonsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsRejectionReasonsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsRejectionReasonsParameterRemoteIds"}}],"responses":{"200":{"description":"GET /ats/rejection-reasons Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsRejectionReasonsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/interviews":{"get":{"operationId":"GetAtsInterviews","summary":"Get interviews","description":"Retrieve all interviews.\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 ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join: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/GetAtsInterviewsParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAtsInterviewsParameterPageSize"}},{"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/GetAtsInterviewsParameterUpdatedAfter"}},{"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/GetAtsInterviewsParameterIncludeDeleted"}},{"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/GetAtsInterviewsParameterIgnoreUnsupportedFilters"}},{"name":"ids","in":"query","required":false,"description":"Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.","schema":{"$ref":"#/components/schemas/GetAtsInterviewsParameterIds"}},{"name":"remote_ids","in":"query","required":false,"description":"Filter by a comma-separated list of remote IDs.","schema":{"$ref":"#/components/schemas/GetAtsInterviewsParameterRemoteIds"}},{"name":"job_ids","in":"query","required":false,"description":"Filter by a comma-separated list of job IDs. We will only return interviews for applications associated with any of these jobs.","schema":{"$ref":"#/components/schemas/GetAtsInterviewsParameterJobIds"}}],"responses":{"200":{"description":"GET /ats/interviews Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsInterviewsPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"}}}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/actions/ats_create_candidate":{"get":{"operationId":"GetAtsActionsAtsCreateCandidate","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /ats/actions/ats_create_candidate Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsActionsAtsCreateCandidatePositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}}}}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/actions/ats_create_application":{"get":{"operationId":"GetAtsActionsAtsCreateApplication","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /ats/actions/ats_create_application Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsActionsAtsCreateApplicationPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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}}}}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/actions/ats_add_application_attachment":{"get":{"operationId":"GetAtsActionsAtsAddApplicationAttachment","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /ats/actions/ats_add_application_attachment Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsActionsAtsAddApplicationAttachmentPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"]}}}}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/actions/ats_add_candidate_attachment":{"get":{"operationId":"GetAtsActionsAtsAddCandidateAttachment","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /ats/actions/ats_add_candidate_attachment Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAtsActionsAtsAddCandidateAttachmentPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"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"]}}}}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/import-tracked-application":{"post":{"operationId":"PostAtsImportTrackedApplication","summary":"Import tracked application","description":"Import tracked application\n\nRetroactively import existing applications into Kombo's tracking system. This is particularly useful if you have enabled the 'sync only created applications' setting and want to start tracking applications that were created before using Kombo.\n\nTo import an application, you'll need to provide specific identifiers based on the ATS. The available `id_type` values are defined by Kombo based on the tool's API capabilities. Please reach out to Kombo support if you require further types to be supported.\n\nOnce imported, Kombo will automatically fetch and update the application's complete data during the next sync.\n\n### Example Request Body\n\n```json\n{\n \"tracked_at\": \"2024-04-12T14:33:47.000Z\",\n \"successfactors\": {\n \"id_type\": \"application_remote_id\",\n \"application_remote_id\": \"1224042\"\n }\n}\n```","tags":["Unified ATS API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"join:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /ats/import-tracked-application Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsImportTrackedApplicationRequestBody"},"examples":{"example1":{"value":{"tracked_at":"2024-04-12T14:33:47.000Z","successfactors":{"id_type":"application_remote_id","application_remote_id":"1224042"}}}}}}},"responses":{"200":{"description":"POST /ats/import-tracked-application Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsImportTrackedApplicationPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"id":"5wdtQtJei2oVhJKya2V1KZLM","tracked_at":"2025-02-11T15:37:37.000Z","imported_id":{"successfactors":{"id_type":"application_remote_id","application_remote_id":"1224042"}}},"warnings":[{"message":"This is an example warning!"}]}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/ats/custom/avionte/synced-jobs":{"post":{"operationId":"PostAtsCustomAvionteSyncedJobs","summary":"Add a job to be synced","description":"Adds a job to the synced jobs list. The next sync will pick it up and sync it including all applications and candidates.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"avionte:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"POST /ats/custom/avionte/synced-jobs Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCustomAvionteSyncedJobsRequestBody"},"examples":{"example1":{"value":{"job_remote_id":"12345"}}}}}},"responses":{"200":{"description":"POST /ats/custom/avionte/synced-jobs Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAtsCustomAvionteSyncedJobsPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/ats/custom/avionte/synced-jobs/{job_remote_id}":{"delete":{"operationId":"DeleteAtsCustomAvionteSyncedJobsJobRemoteId","summary":"Remove a job from sync","description":"Removes a job from the synced jobs list. Does not delete already synced data.","tags":["Custom Endpoints"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"avionte:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"job_remote_id","in":"path","required":true,"description":"DELETE /ats/custom/avionte/synced-jobs/:job_remote_id Parameter","schema":{"$ref":"#/components/schemas/DeleteAtsCustomAvionteSyncedJobsJobRemoteIdParameterJobRemoteId"},"examples":{"example1":{"value":"12345"}}}],"requestBody":{"description":"DELETE /ats/custom/avionte/synced-jobs/:job_remote_id Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAtsCustomAvionteSyncedJobsJobRemoteIdRequestBody"},"examples":{"example1":{"value":{}}}}}},"responses":{"200":{"description":"DELETE /ats/custom/avionte/synced-jobs/:job_remote_id Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAtsCustomAvionteSyncedJobsJobRemoteIdPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseGeneral"}}}},"/assessment/packages":{"get":{"operationId":"GetAssessmentPackages","summary":"Get packages","description":"Get all available assessment and background check packages for an integration.\n\nThis is mainly intended for debugging. As you always need to submit the full list of available packages when using [\"set packages\"](/assessment/v1/put-packages), there shouldn't ever be a need to call this endpoint in production.","tags":["Unified ATS (Assessment & Background Check) API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"recruitee:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"responses":{"200":{"description":"GET /assessment/packages Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAssessmentPackagesPositiveResponse"},"examples":{"example1":{"value":{"status":"success","data":{"packages":[{"id":"1001","name":"TypeScript","description":"TypeScript coding skills assessments","updated_at":"2023-06-29T18:47:40.890Z","type":"SKILLS_TEST"}]}}}}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}},"put":{"operationId":"PutAssessmentPackages","summary":"Set packages","description":"Set packages\n\nReplaces the list of available assessment and or background check packages.\n\nPackages that have been previously submitted through this endpoint but aren't included again will be marked as deleted.\n\n### Example Request Body\n\n```json\n{\n \"packages\": [\n {\n \"id\": \"1001\",\n \"type\": \"SKILLS_TEST\",\n \"name\": \"TypeScript\",\n \"description\": \"TypeScript coding skills assessments\"\n },\n {\n \"id\": \"1002\",\n \"type\": \"VIDEO_INTERVIEW\",\n \"name\": \"Video Interview\",\n \"description\": \"Video interview to assess communication skills\"\n }\n ]\n}\n```","tags":["Unified ATS (Assessment & Background Check) API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"recruitee:HWUTwvyx2wLoSUHphiWVrp28","required":true}],"requestBody":{"description":"PUT /assessment/packages Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutAssessmentPackagesRequestBody"},"examples":{"example1":{"value":{"packages":[{"id":"1001","type":"SKILLS_TEST","name":"TypeScript","description":"TypeScript coding skills assessments"},{"id":"1002","type":"VIDEO_INTERVIEW","name":"Video Interview","description":"Video interview to assess communication skills"}]}}}}}},"responses":{"200":{"description":"PUT /assessment/packages Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutAssessmentPackagesPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/assessment/orders/open":{"get":{"operationId":"GetAssessmentOrdersOpen","summary":"Get open orders","description":"Get all open assessment and background check orders of an integration.","tags":["Unified ATS (Assessment & Background Check) API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"recruitee: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/GetAssessmentOrdersOpenParameterCursor"}},{"name":"page_size","in":"query","required":false,"description":"The number of results to return per page. Maximum is 250.","schema":{"$ref":"#/components/schemas/GetAssessmentOrdersOpenParameterPageSize"}}],"responses":{"200":{"description":"GET /assessment/orders/open Positive response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAssessmentOrdersOpenPositiveResponse"}}}},"default":{"$ref":"#/components/responses/ErrorResponseATS"}}}},"/assessment/orders/{assessment_order_id}/result":{"put":{"operationId":"PutAssessmentOrdersAssessmentOrderIdResult","summary":"Update order result","description":"Updates an assessment or a background check order result.\n\n### Example Request Body\n\n```json\n{\n \"status\": \"COMPLETED\",\n \"score\": 90,\n \"max_score\": 100,\n \"result_url\": \"https://example.com\",\n \"completed_at\": \"2023-04-04T00:00:00.000Z\",\n \"attributes\": [\n {\n \"type\": \"TEXT\",\n \"label\": \"Role fit\",\n \"value\": \"Excellent\"\n },\n {\n \"type\": \"SUB_RESULT\",\n \"id\": \"\",\n \"label\": \"Personality test\",\n \"score\": {\n \"value\": 97,\n \"max\": 100\n },\n \"status\": \"COMPLETED\"\n }\n ],\n \"attachments\": [\n {\n \"name\": \"Assessment Report.pdf\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"content_type\": \"application/pdf\"\n }\n ]\n}\n```","tags":["Unified ATS (Assessment & Background Check) API"],"parameters":[{"in":"header","name":"X-Integration-Id","schema":{"type":"string"},"description":"ID of the integration you want to interact with.","example":"recruitee:HWUTwvyx2wLoSUHphiWVrp28","required":true},{"name":"assessment_order_id","in":"path","required":true,"description":"PUT /assessment/orders/:assessment_order_id/result Parameter","schema":{"$ref":"#/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId"},"examples":{"example1":{"value":"GRKdd9dibYKKCrmGRSMJf3wu"}}}],"requestBody":{"description":"PUT /assessment/orders/:assessment_order_id/result Request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultRequestBody"},"examples":{"example1":{"value":{"status":"COMPLETED","score":90,"max_score":100,"result_url":"https://example.com","completed_at":"2023-04-04T00:00:00.000Z","attributes":[{"type":"TEXT","label":"Role fit","value":"Excellent"},{"type":"SUB_RESULT","id":"","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}}}}