just/mocks_
mockzilla.org →
Catalog /ai /Kombo API

Kombo API

PROVIDER · Kombo SPEC v1.0.0 · OpenAPI 3.0.0 MOCK · LIVE
▸ TRY IT
https://api.justmocks.com/kombo
Open mock →

Mock the Kombo API in seconds. Kombo is changing how B2B SaaS companies provide HR integrations to their customers.

[01]

About

overview

Mock the Kombo API as a turnkey Mockzilla sim with 54 OpenAPI endpoints, realistic JSON payloads, no upstream signup or sandbox keys. Kombo is changing how B2B SaaS companies provide HR integrations to their customers. Methods: 22x GET, 22x POST, 5x PUT, 3x DELETE, 2x PATCH. Top resource groups: Unified ATS API, Unified HRIS API, General, Custom Endpoints. Hit https://api.justmocks.com/kombo for the Mockzilla API Explorer landing and per-endpoint sample requests.

Endpoints
54 across 6 resource groups
Methods
GET 22 · POST 22 · PUT 5 · PATCH 2 · DEL 3 none deprecated
OpenAPI
3.0.0 spec version 1.0.0
Source spec
833 KB · YAML
[02]

Endpoints

54 operations · 6 resource groups
GET /check-api-key
General
Check API key
Check whether your API key is working properly. Mocked via Mockzilla.
POST /force-sync
General
Trigger sync
Trigger a sync for a specific integration. Please note that it is not necessary nor recommended to call this endpoint periodically on your side. Kombo already performs period 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).
POST /passthrough/{tool}/{api}
General
Send passthrough request
Send a request to the specified integration's native API. At 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. Pass 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. To 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. |Integration|{tool}/{api}|Description| |---|---|---| |Personio|personio/personnel|Personio's Personnel Data API. We automatically authenticate all requests using the client ID and secret and use https://api.personio.de/v1 as the base URL.| |Workday|workday/soap|Workday's SOAP API. 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}/38.2. 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. The string that you submit as data will be the content of the soapenv:Body tag in the request.| |SAP SuccessFactors|successfactors/odata-v2|SuccessFactors' OData V2 API. We automatically authenticate all requests and use https://{api_domain}/odata/v2 as the base URL.| |Lever|lever/v1|Lever's v1 API. 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).| |Recruitee|recruitee/default|The Recruitee API. We automatically authenticate all requests and use https://api.recruitee.com/c/{company_id} as the base URL.| |Greenhouse|greenhouse/harvest|Greenhouse Harvest API. We automatically authenticate all requests using the API key and use https://harvest.greenhouse.io/v1 as the base URL.| |Teamtailor|teamtailor/v1|Teamtailor's JSON-API. We authenticate all request with the Teamtailor API key and use the base URL https://api.teamtailor.com/v1.| |Personio|personio/recruiting|Personio's Recruiting API. We automatically authenticate all requests using the Recruiting access token and use https://api.personio.de/v1/recruiting as the base URL.| |Personio|personio/jobboard|API endpoints exposed on Personio's public job board pages (currently just the XML feed). We automatically use the right https://{company}.jobs.personio.de base URL.| |BambooHR|bamboohr/v1|BambooHR's API. We automatically authenticate all requests using the customer credentials https://api.bamboohr.com/api/gateway.php/{subdomain}/v1 as the base URL.| |Workable|workable/v1|Workable's API. We automatically authenticate all requests using the client ID and secret and use https://subdomain.workable.com/spi/v3 as the base URL.| |HiBob|hibob/v1|HibBob's v1 API. 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.| |Pinpoint|pinpoint/v1|Pinpoint's JSON:API. We automatically authenticate all requests using the X-API-KEY header and use https://{subdomain}.pinpointhq.com/api/v1 as the base URL.| |Haufe Umantis|umantis/v1|Umantis API v1. We automatically authenticate all requests and use https://{subdomain}.umantis.com/api/v1 as the base URL.| |HRworks|hrworks/v2|HRWorks's v2 API. We automatically authenticate all requests using the customer credentials.| |JazzHR|jazzhr/v1|JazzHR's v1 API. We automatically authenticate all requests.| Please 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.
DEL /integrations/{integration_id}
General
Delete integration
Delete the specified integration. ⚠️ This can not be undone!
GET /integrations/{integration_id}
General
Get integration details
Get the specified integration with everything you need to display it to your customer.
POST /integrations/{integration_id}/relink
General
Create reconnection link
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. Embed this the same way you would embed the connect link. By default, the link will be valid for 1 hour. Example Request Body { "language": "en" }. Available as a Mockzilla mock endpoint.
GET /tools/{category}
General
Get tools
Get a list of the tools (i.e., integrations) enabled in your environment. This can (in combination with the integration_tool parameter of the "Create Link" endpoint) 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.
POST /hris/provisioning-groups/{group_id}/diff
Unified HRIS API
Get provisioning diff
Get the list of users to provision, deprovision, and optionally update based on the users you've already provisioned in your system.
POST /hris/provisioning-groups/{group_id}/setup-links
Unified HRIS API
Create provisioning setup link
Create a new link that can be passed to the Kombo Connect SDK to open the provisioning setup UI.
GET /hris/employees
Unified HRIS API
Get employees
Retrieve all employees. This feature is currently available for the following integrations: Personio Workday Workday Custom Reports Workday Custom Report SFTP SAP SuccessFactors Factorial UKG Pro rexx systems AFAS Software BambooHR PayFit Customer PayFit Partner PayFit Kenjo HeavenHR HiBob Cezanne HR Entra ID Azure AD Google Workspace Deel Remote Okta Sage HR Humaans Eurécia Oracle HCM Officient Sesame HR Charlie HRworks Abacus Zoho People Gusto Breathe HR CatalystOne Mirus AlexisHR Rippling Sapling Nmbrs PeopleHR Lucca Zelt Planday Hailey HR Silae Sympa IRIS Cascade Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Not interested in most fields? You can use our our Scopes feature to customize what data points are synced. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
POST /hris/employees
Unified HRIS API
Create employee
Create a new employee. This feature is currently available for the following integrations: Personio SAP SuccessFactors Factorial BambooHR HiBob Remote Sage HR Humaans Gusto Breathe HR AlexisHR Rippling Nmbrs Silae Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Create and manage employees to be enabled in your scope config. Example Request Body { "first_name": "John", "last_name": "Doe", "work_email": "john.doe@acme.com", "gender": "MALE", "job_title": "Integrations Team Lead", "home_address": { "city": "Berlin", "country": "DE", "state": "Berlin", "street_1": "Sonnenallee 63", "zip_code": "12045" }, "date_of_birth": "1986-01-01", "start_date": "2020-04-07" }. Mockzilla mock: no signup, no API key.
PATCH /hris/employees/{employee_id}
Unified HRIS API
Update employee
Update an employee. This feature is currently available for the following integrations: Silae DATEV LODAS DATEV Lohn & Gehalt You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Create and manage employees to be enabled in your scope config. Example Request Body { "employee_id": "BkgfzSr5muN9cUTMD4wDQFn4", "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" } }
POST /hris/employees/{employee_id}/attachments
Unified HRIS API
Add attachment to employees 🦄
Currently in closed beta. 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.
GET /hris/teams
Unified HRIS API
Get teams (deprecated)
Get the teams. This feature is currently available for the following integrations: Personio Workday Workday Custom Reports Workday Custom Report SFTP SAP SuccessFactors Factorial UKG Pro rexx systems AFAS Software BambooHR PayFit Kenjo HeavenHR HiBob Cezanne HR Entra ID Azure AD Google Workspace Deel Okta Sage HR Humaans Eurécia Oracle HCM Officient Sesame HR Charlie HRworks Abacus Zoho People Gusto Breathe HR Mirus AlexisHR Rippling Sapling Nmbrs PeopleHR Lucca Zelt Planday Hailey HR Silae IRIS Cascade Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint is deprecated! Please use the /groups endpoint 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.. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /hris/groups
Unified HRIS API
Get groups
Retrieve all "groups" (teams, departments, and cost centers). This feature is currently available for the following integrations: Personio Workday Workday Custom Reports Workday Custom Report SFTP SAP SuccessFactors Factorial UKG Pro rexx systems AFAS Software BambooHR PayFit Kenjo HeavenHR HiBob Cezanne HR Entra ID Azure AD Google Workspace Deel Okta Sage HR Humaans Eurécia Oracle HCM Officient Sesame HR Charlie HRworks Abacus Zoho People Gusto Breathe HR Mirus AlexisHR Rippling Sapling Nmbrs PeopleHR Lucca Zelt Planday Hailey HR Silae IRIS Cascade Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /hris/employments
Unified HRIS API
Get employments
Retrieve all employments. This feature is currently available for the following integrations: Personio Workday Workday Custom Reports Workday Custom Report SFTP SAP SuccessFactors Factorial UKG Pro rexx systems AFAS Software BambooHR PayFit Customer PayFit Partner PayFit Kenjo HeavenHR HiBob Cezanne HR Deel Remote Sage HR Humaans Eurécia Oracle HCM Officient Charlie HRworks Gusto Breathe HR CatalystOne AlexisHR Sapling Nmbrs PeopleHR Lucca Zelt Hailey HR Silae Sympa IRIS Cascade Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids). Served by the Mockzilla mock runtime.
GET /hris/locations
Unified HRIS API
Get work locations
Retrieve all work locations. This feature is currently available for the following integrations: Personio Workday Workday Custom Reports Workday Custom Report SFTP SAP SuccessFactors Factorial UKG Pro BambooHR PayFit Kenjo HeavenHR HiBob Cezanne HR Entra ID Azure AD Google Workspace Deel Remote Humaans Oracle HCM Sesame HR Charlie HRworks Gusto Breathe HR CatalystOne AlexisHR Rippling Sapling Nmbrs PeopleHR Lucca Zelt Hailey HR Sympa Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /hris/absence-types
Unified HRIS API
Get absence types
Retrieve all absence types. This feature is currently available for the following integrations: Personio Workday SAP SuccessFactors Factorial rexx systems BambooHR PayFit HeavenHR HiBob Cezanne HR Deel Sage HR Humaans Eurécia Officient Sesame HR Charlie HRworks Zoho People AlexisHR Rippling PeopleHR Lucca Silae DATEV LODAS DATEV Lohn & Gehalt Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /hris/time-off-balances
Unified HRIS API
Get time off balances
Retrieve all time off balances. This feature is currently available for the following integrations: Personio Workday SAP SuccessFactors BambooHR HiBob Deel Sage HR Humaans Eurécia Charlie HRworks Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /hris/absences
Unified HRIS API
Get absences
Retrieve all absences. This feature is currently available for the following integrations: Personio Workday SAP SuccessFactors Factorial rexx systems BambooHR PayFit HeavenHR HiBob Cezanne HR Deel Sage HR Humaans Eurécia Officient Sesame HR Charlie HRworks Zoho People AlexisHR Rippling PeopleHR Lucca Hailey HR Silae Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
POST /hris/absences
Unified HRIS API
Create absence
Create a new absence. This feature is currently available for the following integrations: Personio SAP SuccessFactors Factorial BambooHR HiBob Deel Sesame HR AlexisHR Silae DATEV LODAS DATEV Lohn & Gehalt Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Check this page for a detailed guide. This endpoint requires the permission Manage absences to be enabled in your scope config. Example Request Body { "employee_id": "wXJMxwDvPAjrJ4CyqdV9", "absence_type_id": "3YKtQ7qedsrcCady1jSyAkY1", "start_date": "2019-09-17", "end_date": "2019-09-21", "start_half_day": false, "end_half_day": false, "employee_note": "Visiting the aliens", "start_time": "08:30:00", "end_time": "16:00:00" }. Mocked via Mockzilla.
DEL /hris/absences/{absence_id}
Unified HRIS API
Delete absence
Delete this absence. This feature is currently available for the following integrations: Personio SAP SuccessFactors Factorial BambooHR HiBob Deel Sesame HR AlexisHR Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Manage absences to be enabled in your scope config. Example Request Body { "absence_id": "wXJMxwDvPAjrJ4CyqdV9" }
GET /hris/legal-entities
Unified HRIS API
Get legal entities
Retrieve all legal entites. This feature is currently available for the following integrations: Personio Workday Workday Custom Reports SAP SuccessFactors Factorial UKG Pro PayFit Customer PayFit Partner PayFit Kenjo HeavenHR Cezanne HR Entra ID Azure AD Deel Okta Humaans Charlie Abacus Gusto Breathe HR CatalystOne AlexisHR Nmbrs PeopleHR Lucca Silae Kombo Sandbox SFTP You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /ats/applications
Unified ATS API
Get applications
Retrieve all applications. Visit our in depth guide to learn more about: - 💡 Being aware of which applications are tracked - 🚦 Hiring signals - 📈 Application stage changes - ❓ ATS-specific limitations This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Teamtailor Ashby Onlyfy AFAS Software BambooHR Bullhorn Bullhorn Login Workable Fountain Softgarden Pinpoint Welcome to the Jungle d.vinci JOIN Jobvite Sage HR TRAFFIT eRecruiter Haufe Umantis Taleez HRworks OTYS Eploy RECRU JazzHR BITE Homerun Carerix Breezy HR Flatchr ApplicantStack TalentSoft Customer Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
PUT /ats/applications/{application_id}/stage
Unified ATS API
Move application to stage
Moves an application to a specified stage. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Teamtailor Ashby Onlyfy BambooHR Workable TRAFFIT Eploy Homerun Carerix Breezy HR You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup" }
POST /ats/applications/{application_id}/result-links
Unified ATS API
Add result link to application
Add a result link to an application. 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. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "application_id": "8Xi6iZrwusZqJmDGXs49GBmJ", "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" } ] } }. Available as a Mockzilla mock endpoint.
POST /ats/applications/{application_id}/notes
Unified ATS API
Add note to application
Add a note to an application. This feature is currently available for the following integrations: Lever Recruitee Greenhouse Teamtailor Ashby Bullhorn Pinpoint d.vinci Eploy Homerun Carerix You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Add extra information to an application. This can be any extra text information you want to add to an application. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "content": "A new message from the candidate is available in YourChat!", "content_type": "PLAIN_TEXT" }
POST /ats/applications/{application_id}/attachments
Unified ATS API
Add attachment to application
Uploads an attachment file for the specified applicant. If adding an attachment to an application is not supported by the integration, the attachment will be added to the candidate instead. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "application_id": "GRKdd9dibYKKCrmGRSMJf3wu", "attachment": { "name": "Frank Doe CV.txt", "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", "type": "CV", "content_type": "text/plain" } }
GET /ats/candidates
Unified ATS API
Get candidates
Retrieve all candidates. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Teamtailor Ashby Onlyfy AFAS Software BambooHR Bullhorn Bullhorn Login Workable Fountain Pinpoint Welcome to the Jungle JOIN Jobvite Sage HR TRAFFIT Haufe Umantis Taleez HRworks OTYS Eploy RECRU JazzHR BITE Homerun Carerix Breezy HR Flatchr ApplicantStack TalentSoft Customer Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
POST /ats/candidates
Unified ATS API
Create candidate
Create a new candidate and application for the specified job. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Greenhouse Job Board Teamtailor Ashby Onlyfy Personio UKG Pro rexx systems AFAS Software BambooHR Bullhorn Workable Fountain Softgarden Pinpoint Welcome to the Jungle d.vinci JOIN Jobvite Sage HR TRAFFIT eRecruiter Haufe Umantis Jobylon Taleez HRworks OTYS Eploy Heyrecruit RECRU JazzHR BITE Homerun Mysolution Carerix Breezy HR Flatchr TalentSoft concludis Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint is deprecated! 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 Using it also has the benefit that we return the newly created applicant at the root level, so you can easily store its ID. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "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" }, "social_links": [ { "url": "https://www.linkedin.com/in/frank-doe-123456789/" }, { "url": "https://twitter.com/frankdoe" } ] }, "application": { "job_id": "BDpgnpZ148nrGh4mYHNxJBgx", "stage_id": "8x3YKRDcuRnwShdh96ShBNn1" }, "screening_question_answers": [ { "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", "answer": "Yes" }, { "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", "answer": [ "GUzE666zfyjeoCJX6A8n7wh6", "5WPHzzKAv8cx97KtHRUV96U8", "7yZfKGzWigXxxRTygqAfHvyE" ] } ], "attachments": [ { "name": "Frank Doe CV.txt", "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", "type": "CV", "content_type": "text/plain" } ] }
PATCH /ats/candidates/{candidate_id}
Unified ATS API
Update candidate 🦄
Currently in closed beta. 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. Mockzilla mock: no signup, no API key.
POST /ats/candidates/{candidate_id}/attachments
Unified ATS API
Add attachment to candidate
Uploads an attachment file for the specified candidate. This feature is currently available for the following integrations: Workday SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Teamtailor Ashby Onlyfy Bullhorn Workable Welcome to the Jungle eRecruiter Taleez HRworks OTYS Homerun Carerix Breezy HR Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint is deprecated! Please use Add attachment to application instead. This action is deprecated because attachments usually concern applications and not candidates. Use endpoint nested under /applications instead.. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "candidate_id": "GRKdd9dibYKKCrmGRSMJf3wu", "attachment": { "name": "Frank Doe CV.txt", "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", "type": "CV", "content_type": "text/plain" } }
POST /ats/candidates/{candidate_id}/result-links
Unified ATS API
Add result link to candidate
Add a result link to a candidate. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Lever Recruitee Greenhouse Teamtailor Ashby Onlyfy Bullhorn Workable Welcome to the Jungle JOIN Jobvite eRecruiter OTYS JazzHR Homerun Breezy HR Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint is deprecated! Please use add result link to application instead. 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. This action is deprecated because result links usually concern applications and not candidates. Use endpoint nested under /applications instead.. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "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" } ] } }
POST /ats/candidates/{candidate_id}/tags
Unified ATS API
Add tag to candidate
Add a tag to a candidate. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Lever Recruitee Greenhouse Teamtailor Ashby Onlyfy Workable Welcome to the Jungle eRecruiter RECRU Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Kombo takes care of creating the tag if required, finding out the right ID, and appending it to the list of tags. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "tag": { "name": "Excellent Fit" } }
DEL /ats/candidates/{candidate_id}/tags
Unified ATS API
Remove tag from candidate
Remove a tag from a candidate based on its name. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Lever Recruitee Greenhouse Teamtailor Onlyfy Workable Welcome to the Jungle eRecruiter Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This will also succeed if the tag does not exist on the candidate. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "tag": { "name": "Excellent Fit" } }
GET /ats/tags
Unified ATS API
Get tags
Retrieve all tags. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Lever Recruitee Greenhouse Teamtailor Ashby Onlyfy Workable Pinpoint Welcome to the Jungle JOIN TRAFFIT RECRU Breezy HR Flatchr Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids). Served by the Mockzilla mock runtime.
GET /ats/application-stages
Unified ATS API
Get application stages
Get all application stages available in the ATS. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Teamtailor Ashby Onlyfy AFAS Software BambooHR Bullhorn Bullhorn Login Workable Fountain Softgarden Pinpoint Welcome to the Jungle d.vinci Jobvite Sage HR TRAFFIT Haufe Umantis Taleez HRworks OTYS Eploy RECRU JazzHR BITE Homerun Carerix Breezy HR Flatchr ApplicantStack TalentSoft Customer Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint is deprecated! 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 on jobs instead.. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /ats/jobs
Unified ATS API
Get jobs
Retrieve all jobs. Visit our in depth guide to learn more about: - 🔄 Getting updates of the data - ❗ Handling failing syncs - 🔍 Letting your customer choose which jobs to expose - 🔗 Matching jobs in your database to ATS jobs - 🗑️ Reacting to deleted/closed jobs This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Greenhouse Job Board Teamtailor Ashby Onlyfy Personio UKG Pro rexx systems AFAS Software BambooHR Bullhorn Bullhorn Login Workable Fountain Softgarden Pinpoint Welcome to the Jungle d.vinci JOIN Jobvite Sage HR TRAFFIT eRecruiter Haufe Umantis Jobylon Taleez HRworks OTYS Eploy Heyrecruit RECRU JazzHR BITE Homerun Mysolution Carerix Breezy HR Flatchr ApplicantStack TalentSoft TalentSoft Customer concludis Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
POST /ats/jobs/{job_id}/applications
Unified ATS API
Create application
Create a new application and candidate for the specified job. Visit our in depth guide to learn more about: - 🌐 Setting the source of the application - 📎 Uploading attachments with the application - ♻️ Retry behaviour - ✏️ Writing answers to screening questions - ⚠️ Handling ATS-specific limitations This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Oracle Recruiting Cloud Lever iCIMS Recruitee Greenhouse Greenhouse Job Board Teamtailor Ashby Onlyfy Personio UKG Pro rexx systems AFAS Software BambooHR Bullhorn Workable Fountain Softgarden Pinpoint Welcome to the Jungle d.vinci JOIN Jobvite Sage HR TRAFFIT eRecruiter Haufe Umantis Jobylon Taleez HRworks OTYS Eploy Heyrecruit RECRU JazzHR BITE Homerun Mysolution Carerix Breezy HR Flatchr TalentSoft concludis Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config. Example Request Body { "stage_id": "8x3YKRDcuRnwShdh96ShBNn1", "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" } }, "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" ] } ] }
GET /ats/users
Unified ATS API
Get users
Retrieve all users. This feature is currently available for the following integrations: SAP SuccessFactors SmartRecruiters Lever Recruitee Greenhouse Teamtailor Ashby Onlyfy Workable Softgarden Pinpoint d.vinci JOIN Jobvite TRAFFIT HRworks OTYS Eploy RECRU JazzHR Carerix Breezy HR Kombo Sandbox You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)
GET /assessment/packages
Unified ATS (Assessment) API
Get packages
Get all available assessment packages for an integration. This is mainly intended for debugging. As you always need to submit the full list of available packages when using "set packages", there shouldn't ever be a need to call this endpoint in production. Mocked via Mockzilla.
PUT /assessment/packages
Unified ATS (Assessment) API
Set packages
Replaces the list of available assessment packages. Packages that have been previously submitted through this endpoint but aren't included again will be marked as deleted.
GET /assessment/orders/open
Unified ATS (Assessment) API
Get open orders
Get all open assessment orders of an integration.
PUT /assessment/orders/{assessment_order_id}/result
Unified ATS (Assessment) API
Update order result
Updates an assessment order result. This feature is currently available for the following integrations: Workday SAP SuccessFactors SmartRecruiters Recruitee Greenhouse Ashby You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. Example Request Body { "status": "COMPLETED", "result_url": "https://example.com", "completed_at": "2023-04-04T00:00:00.000Z", "score": 90, "max_score": 100, "attributes": [ { "field": "remarks", "value": "Test completed with passing score" } ] }
POST /connect/create-link
Kombo Connect
Create connection link
Generate a unique link that allows your user to enter the embedded Kombo Connect flow. Check out our full guide for more details about implementing the connection flow into your app. 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 endpoint if you want a customer to update their credentials. Example Request Body { "end_user_email": "test@example.com", "end_user_organization_name": "Test Inc.", "end_user_origin_id": "123", "integration_category": "HRIS", "integration_tool": "personio", "language": "en" }
GET /connect/integration-by-token/{token}
Kombo Connect
Get integration by token
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. Check out our full guide for more details about implementing the connection flow into your app. This endpoint is used to ensure users can't trick your system connecting their account in your system to another customers integration. You don't get the integration ID from the showKomboConnect(link) function but only the short lived token used for this endpoint so that users can't send you arbitrary data that you would put into your system. Available as a Mockzilla mock endpoint.
POST /connect/activate-integration
Kombo Connect
Activate integration (optional)
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. We are deprecating this endpoint in favour of the get integration by code endpoint. To migrate you only have to change to the new API endpoint. Example Request Body { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjoiVGhpcyBpcyBub3QgYW4gYWN0dWFsIHRva2VuLiJ9.JulqgOZBMKceI8vh9YLpVX51efND0ZyfUNHDXLrPz_4" }
POST /custom/datev/passthrough
Custom Endpoints
Write raw DATEV ASCII file
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.
PUT /custom/datev/employees/{employee_id}/prepare-payroll
Custom Endpoints
Prepare DATEV Payroll
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. This feature is currently available for the following integrations: DATEV LODAS DATEV Lohn & Gehalt You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Manage payroll to be enabled in your scope config. Example Request Body { "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", "payroll_run": { "date": "2022-05-01" }, "hourly_payments": [ { "hours": 14, "lohnart": 200 }, { "hours": 16, "lohnart": 232 } ], "fixed_payments": [ { "amount": 560, "lohnart": 100 } ], "custom_lodas": [ { "amount": 8, "lohnart": 300, "bearbeitungsschluessel": 4 } ] }
PUT /custom/datev/employees/{employee_id}/compensations
Custom Endpoints
Set DATEV compensations
Sets the compensations for an employee on the specified effective date. This feature is currently available for the following integrations: DATEV LODAS DATEV Lohn & Gehalt You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. 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. This endpoint requires the permission Manage payroll to be enabled in your scope config. Example Request Body { "employee_id": "3bdhemmSP1TPQDGWtRveRot9", "effective_date": "2022-12-01", "compensations": [ { "amount": 4500, "currency": "EUR", "period": "MONTH", "lohnart": 200 }, { "amount": 30, "currency": "EUR", "period": "HOUR" } ] }
GET /custom/datev/data-pushes
Custom Endpoints
Get DATEV data pushes
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. Mockzilla mock: no signup, no API key.
POST /custom/datev/push-data/general
Custom Endpoints
Push general data to DATEV
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.
POST /custom/datev/push-data/payroll
Custom Endpoints
Push payroll data to DATEV
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.
POST /custom/silae/employees/{employee_id}/payroll-supplements
Custom Endpoints
Write Payroll Supplement
Write a payroll supplement to Silae using the supplement code. This feature is currently available for the following integrations: Silae You'd like to see this feature for another integration? Please reach out! We're always happy to discuss extending our coverage. This endpoint requires the permission Manage payroll to be enabled in your scope config. Example Request Body { "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", "supplement_code": "200", "effective_date": "2024-01-14", "element_amount": 6 }