Connect MetronHR to your own systems
There are three ways in and out: an open REST API with an OpenAPI document, signed webhooks for events from your business, and an MCP server that an AI assistant can work through. All three belong to the Professional plan, at no extra charge and with no minimum number of licences.
The three ways in
They share one permission model. What an access point may do is set as a right per resource, not as a role and not as all or nothing.
| Way in | What it is meant for | How it identifies itself |
|---|---|---|
| REST API | A system that fetches or writes data regularly: payroll, project controlling, a dashboard of your own. | An API key as a bearer token, created in the company settings. |
| Webhooks | A system that wants to know at once when something happens, instead of asking on a schedule. | A signature per delivery to Standard Webhooks, with a rotatable secret. |
| MCP server | An AI assistant such as Claude or ChatGPT that is meant to answer questions about the business. | OAuth 2.1 with PKCE, with a consent dialog that names the rights in plain words. |
REST API
- What it is meant for
- A system that fetches or writes data regularly: payroll, project controlling, a dashboard of your own.
- How it identifies itself
- An API key as a bearer token, created in the company settings.
Webhooks
- What it is meant for
- A system that wants to know at once when something happens, instead of asking on a schedule.
- How it identifies itself
- A signature per delivery to Standard Webhooks, with a rotatable secret.
MCP server
- What it is meant for
- An AI assistant such as Claude or ChatGPT that is meant to answer questions about the business.
- How it identifies itself
- OAuth 2.1 with PKCE, with a consent dialog that names the rights in plain words.
As of 14 September 2026. What is binding is the OpenAPI document at app.metronhr.de/api/v1/openapi.json, not this overview.
Which data the API carries
Every resource can be read. Writing is possible where a call takes the same route as an entry in the product, so through the same rules: lock periods, collision checks, holiday balance, rights on the client.
| Resource | Read | Change |
|---|---|---|
| People | yes | no, a person comes about through an invitation |
| Departments | yes | no |
| Clients | yes | yes |
| Services | yes | yes |
| Projects | yes | yes |
| Time entries | yes | yes |
| Absences | yes | yes, request and decide |
| Shifts | published ones only | no, that is the planner's answer |
| Working time models and contracts | yes, without salary and without allowances | no |
| Holiday accounts and public holidays | yes | no |
| Shift areas and shift types | yes | no |
| Allowances and service records | yes | no |
People
- Read
- yes
- Change
- no, a person comes about through an invitation
Departments
- Read
- yes
- Change
- no
Clients
- Read
- yes
- Change
- yes
Services
- Read
- yes
- Change
- yes
Projects
- Read
- yes
- Change
- yes
Time entries
- Read
- yes
- Change
- yes
Absences
- Read
- yes
- Change
- yes, request and decide
Shifts
- Read
- published ones only
- Change
- no, that is the planner's answer
Working time models and contracts
- Read
- yes, without salary and without allowances
- Change
- no
Holiday accounts and public holidays
- Read
- yes
- Change
- no
Shift areas and shift types
- Read
- yes
- Change
- no
Allowances and service records
- Read
- yes
- Change
- no
As of 15 September 2026, 16 resources, five of them changeable. The rights per resource are "read" or "read and change"; the right to change includes reading.
What a webhook reports
A target subscribes to individual events, not to everything. The payload has the same shape as the REST API response for the same resource, so a receiver has one type and not two. The full catalogue, the signature and the behaviour on delivery failures are on the page about Webhooks.
| Area | Events |
|---|---|
| Time entries | created, changed, deleted. They report from all five ways of recording, including the terminal and the app. |
| Absences | requested, approved, rejected, cancelled, changed. Changed is the case a payroll system otherwise misses: the dates of an already approved holiday shift. |
| People | created, deactivated, personal data changed. Created reports from every route, including the import and provisioning through Microsoft Entra ID. |
| Shifts | published, assigned, removed. |
Time entries
- Events
- created, changed, deleted. They report from all five ways of recording, including the terminal and the app.
Absences
- Events
- requested, approved, rejected, cancelled, changed. Changed is the case a payroll system otherwise misses: the dates of an already approved holiday shift.
People
- Events
- created, deactivated, personal data changed. Created reports from every route, including the import and provisioning through Microsoft Entra ID.
Shifts
- Events
- published, assigned, removed.
As of 15 September 2026, 15 events. A delivery that does not arrive is retried up to six times at growing intervals.
What the interface brings with it
- Cursor paging with `nextCursor`, so even five-digit row counts run through.
- Errors to RFC 9457 as `application/problem+json`, naming the fields on an input error.
- The `Idempotency-Key` header on writing calls, so a retry does not create anything twice.
- Rate limits with the `RateLimit` and `RateLimit-Policy` headers.
- Every call is in the business's log, with the key and the operation.
What does not exist
- Payroll. MetronHR records hours, it does not run payroll on them.
- A write route for people. A person comes into being here through an invitation, not through a call.
- A write route for shifts. A shift has to hold up against the working time model, the rest period and availability, and that is what the planner answers.
- A second version of the interface. There is v1, and extensions are additive.
The gaps are decisions, not a backlog. Where a write route is missing, it is missing because the process in the product is more than a row in a table.
Connecting an AI assistant
The MCP server speaks revision 2026-07-28 of the Model Context Protocol and needs only an address in the client:https://app.metronhr.de/mcp. There is no client ID and no secret to type in, the client registers itself and then runs the sign-in flow in the browser. What the server can do and where it stops is set out on the page about the MCP server; the steps for each assistant are at ChatGPT, Microsoft Copilot and Claude.
| Step | Where it happens |
|---|---|
| Switch AI connections on | Company settings, Integrations section. The default is off. |
| Release the roles | Beside it: who may connect. Empty means nobody, even with the switch on. |
| Release writing | Its own switch with its own list of roles. Without it an assistant can read and nothing else. |
| Enter it in the client | Claude Desktop, Claude Code, ChatGPT or GitHub Copilot: enter the address, approve it in the browser. The dialog names the rights in plain words. |
Switch AI connections on
- Where it happens
- Company settings, Integrations section. The default is off.
Release the roles
- Where it happens
- Beside it: who may connect. Empty means nobody, even with the switch on.
Release writing
- Where it happens
- Its own switch with its own list of roles. Without it an assistant can read and nothing else.
Enter it in the client
- Where it happens
- Claude Desktop, Claude Code, ChatGPT or GitHub Copilot: enter the address, approve it in the browser. The dialog names the rights in plain words.
Every tool call is in the business's log, with the tool and the client, but without the content of the answer. A connection can be disconnected on its own.
Questions about the interface
What we are asked most often about it.
Yes, in the Professional plan, at no extra charge and with no minimum number of licences. That covers all three ways in: the REST API, outgoing webhooks and the MCP server. They are not included in the Team plan.
With an API key as a bearer token. Management creates it in the company settings, ticks exactly the rights the system needs and picks the term. The plain text appears exactly once; only its checksum is stored. A key can be rotated or revoked at any time.
Exactly what was ticked. The rights are "read" or "read and change" per resource, not all or nothing. A key for payroll therefore gets time entries and absences to read and nothing else, and a leaked key can do only what its list says.
What a connection to payroll, project time or a directory needs, and no more. The employee list carries name, role, department and employment status; bank details, date of birth, social insurance number and any disability status stay out. For absences the type goes along, not the note, which with a sick report regularly says what somebody has.
Every delivery is signed to the Standard Webhooks scheme (HMAC-SHA256 over id, timestamp and body). The secret can be rotated, and the old one keeps signing for 24 hours so the receiver has time to switch. Targets are checked against internal networks when they are created, and a target that keeps refusing is switched off; the business is notified about that.
Only if the business expressly allows it. AI connections are off by default. Whoever switches them on also says which roles may connect. Writing is a separate, third decision with its own switch and its own list of roles. If it is withdrawn, a running connection loses the ability to write with its next request.
The 14-day trial is the sandbox. A trial business is a full business with its own data, its own keys and the same API; a separate sandbox system that answers differently from production deliberately does not exist.
Question not answered here? Every step is explained in the help centre.
Try it with your own data
You create the first key in the company settings, and the reference is then at app.metronhr.de/api/v1/docs.
No credit card, cancel any time
Related
Where to go from here, and what waits for you there.
MCP server
The same data, queried by an AI assistant instead of by a system.
ViewWebhooks
The event catalogue, the signature and the behaviour on delivery failures.
ViewTime tracking
Which hours arise in the first place, before a connection collects them.
ViewHosting and data protection
Where the data sits that an interface hands out.
ViewPricing
What the Professional plan costs, the plan the interface is included in.
View