canonical: https://jentic.com/apis/kombo.dev/kombo

# Kombo API

The Kombo API gives one unified interface to the HRIS, ATS, LMS, and assessment tools your customers connect, so the same call reads employees or candidates from whichever system sits behind an integration. On the HRIS side it reads employees, employments, groups, locations, absences, time-off balances, timesheets, performance reviews, and payslips, and it can create absences or update employees. On the ATS side it reads jobs, candidates, applications, interviews, offers, and scorecards, and moves, rejects, or annotates applications; it also enrols LMS users in courses, manages connection links and integration field mappings, and offers a passthrough to the underlying tool's own API.

## For AI agents

Read employees, absences, and payslips from connected HRIS tools, read and act on ATS candidates and applications, and enrol users in LMS courses through one unified Kombo API.

## Scope

Does not run payroll itself, host job boards, or store HR data as the system of record. Use for reading and writing HRIS, ATS, and LMS data in your customers' connected tools only.

## Capabilities

- Read employees from a connected HRIS with filters such as employment_statuses, group_ids, legal_entity_ids, and updated_after
- Request time off by creating an absence with employee_id, absence_type_id, start_date, end_date, and employee_note
- Move an ATS application to a new stage_id, reject it with a rejection_reason_id, or add notes and attachments
- Create a candidate or an application on a job in the connected ATS
- Enrol an LMS user in a course and mark a course progression complete
- Create connection links so a customer can link their HR or ATS tool, and set integration field mappings
- Send a passthrough request to the underlying tool's own API when a unified model does not cover it

## Use cases

### AI agent HR workflows through Jentic

An HR assistant built into a SaaS product answers questions about a customer's workforce without knowing which HRIS they run. Through Jentic the agent searches for 'get employees', loads the Kombo employees operation with its input schema, and sends the X-Integration-Id for that customer. Your own Jentic One instance injects the Kombo API key at call time.

Example prompt: Call GET `/hris/employees` with the customer's X-Integration-Id header and employment_statuses 'ACTIVE', then summarise headcount by legal entity using GET `/hris/legal-entities`

### Time off requests across HR systems

An employee asks an assistant to book leave. The agent reads absence types and the employee's time-off balances, then creates an absence with employee_id, absence_type_id, start_date, end_date, and employee_note, and Kombo writes it to whichever HRIS the integration connects.

Example prompt: Call GET `/hris/absence-types` and GET `/hris/time-off-balances`, then POST `/hris/absences` with employee_id, absence_type_id, start_date '2026-12-21', end_date '2026-12-24', and employee_note 'Holiday'

### Recruiting pipeline actions

A recruiting tool reads applications and application stages from the connected ATS, moves a candidate forward by setting stage_id, schedules an interview, or rejects the application with a rejection_reason_id from the ATS's own list.

Example prompt: Call GET `/ats/application-stages`, then PUT `/ats/applications/{application_id}/stage` with the stage_id for 'Interview'

### Customer onboarding with connection links

When a new customer signs up, the product creates a Kombo connection link that the customer uses to connect their HR or ATS tool. Once connected, the integration can be checked, re-linked, enabled or disabled, and forced to sync.

Example prompt: Call POST `/connect/create-link` for the new customer, then after they connect call POST /force-sync with their X-Integration-Id

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/hris/employees` | Get employees |
| POST | `/hris/absences` | Create absence |
| GET | `/hris/time-off-balances` | Get time off balances |
| GET | `/ats/applications` | Get applications |
| PUT | `/ats/applications/{application_id}/stage` | Move application to stage |
| POST | `/ats/candidates` | Create candidate |
| POST | `/lms/course-progressions` | Enroll user in course |
| POST | `/connect/create-link` | Create connection link |

## Key resources

- **HRIS** — Employees, employments, groups, locations, absences, time-off balances, timesheets, performance reviews, skills, and payroll data
- **ATS** — Jobs, candidates, applications, stages, interviews, offers, scorecards, notes, tags, and attachments
- **LMS and assessment** — LMS users, courses, and course progressions, plus assessment packages and orders
- **Integrations and connect** — Connection links, integration details, field and custom field mappings, sync, and passthrough
- **Tool-specific endpoints** — DATEV and Silae payroll operations and Avionte job sync

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 44 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 47 / 100
  - Agent Usability: 76 / 100
  - Security: 60 / 100
  - AI Discoverability: 70 / 100
- **View full report:** https://jentic.com/apis/kombo.dev/kombo/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Kombo by hand means picking the EU, US, or CA host, sending the bearer key plus an X-Integration-Id per customer, and paging through cursor results. Through Jentic you install once, import Kombo from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Kombo puts ids such as application_id and integration_id in the URL path (`/ats/applications/{application_id}/stage`, `/integrations/{integration_id}`), so a rule can pin your agent to one application or integration and the operations you pick. You choose the operations it may call, so destructive ones like deleting an integration or rejecting applications are not included unless you add them.
- **Credential handling:** Your Kombo API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get employees' or 'move an application to a stage', and Jentic returns the matching Kombo operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Apideck HRIS API** — Unified API for HRIS employee, company, and payroll data
- **Finch API** — Unified employment API for HRIS and payroll systems
- **Greenhouse Harvest API** — Direct API for the Greenhouse ATS

## FAQ

### What authentication does the Kombo API use?

The Kombo API authenticates with a bearer token per its OpenAPI spec: an API key created on the Secrets page of the Kombo dashboard, sent in the Authorization header. Most data operations also take an X-Integration-Id header naming the customer integration to act on. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at execution time.

### Which Kombo host should I call?

The spec lists three regional servers: https://api.kombo.dev/v1 for the EU, https://api.us.kombo.dev/v1 for the US, and https://api.ca.kombo.dev/v1 for Canada. Use the host for the region your Kombo environment lives in.

### What are the rate limits for the Kombo API?

The OpenAPI spec does not specify rate limits. Check the Kombo documentation at https://docs.kombo.dev for current limits.

### Is there a Kombo MCP server?

You don't need an MCP server to give your agent the Kombo API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the HRIS, ATS, and LMS operations on demand without loading another server's tool definitions into its context.

### Can I limit what my agent is allowed to do with the Kombo API?

Yes. For example, write a rule that allows only GET `/hris/employees`, GET `/hris/time-off-balances`, and GET `/ats/applications`, so the agent can read workforce and recruiting data but cannot create absences, reject applications, or delete an integration. Every call it makes through your instance is logged.

### How do I move a candidate to the next stage through Jentic?

Search Jentic for 'move an application to a stage', load the Kombo stage operation, read the available stage ids with GET `/ats/application-stages`, and call PUT `/ats/applications/{application_id}/stage` with the chosen stage_id. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### What if a Kombo unified model does not cover a field I need?

Use POST `/passthrough/{tool}/{api}` to send a request straight to the connected tool's own API through Kombo, or map custom fields with PUT `/integrations/{integration_id}/custom-fields/{custom_field_id}` so they appear in the unified data.
