API reference by section
The main endpoints of each section with the permission they need, how to read the full generated reference, and the OpenAPI file for Postman.
Mihnaro has more than 900 endpoints. This page gives the ones most integrations start with, section by section. The full API reference lists every endpoint, generated from the code so it always matches the server.
In the paths below {company} is your company's ID, and the other {…} are record IDs. "None" in the permission column means any active user of the company may call it, and sees only their own records or what they may see. Read Getting started for the headers.
How to use the full reference
- Search in the box at the top of the sidebar: a word from the path, a permission (
leaves.view) or a description ("payslip"). - Sections are the first part of the path after the company:
employees,leaves,payroll-runsand so on. Each one has a link you can share, for example the employees section. - Open an endpoint to see its description, who can call it (sign-in, permission, module, rate limit), its path parameters, the query parameters or body fields the code checks with their rules, and a copy-ready curl call.
- Body fields are read from the code's validation. Some sections check more fields further in; the description then names them, and the section's own help articles explain the forms.
OpenAPI and Postman
The whole API is also available as an OpenAPI 3.0 file, generated from the same code: download openapi.json.
- Postman: Import → Upload files → choose
mihnaro-openapi.json. Set the collection's authorization to Bearer Token with your key, and replace{company}with your company's ID. - Insomnia, Bruno, Hoppscotch and client generators (OpenAPI Generator, openapi-typescript) read the same file.
- Every operation carries
x-permissions,x-modulesandx-rate-limit-per-minute.
Account and company
| Method | Path | Permission | What |
|---|---|---|---|
POST |
/ |
None (no token) | Sign in and get a token |
DELETE |
/ |
None | Sign out this token |
GET |
/ |
None (token only, not API keys) | Your account and your companies |
GET |
/ |
None | The license, modules and branches the company gives you |
GET |
/ |
None | The branch you are working in |
PUT |
/ |
None | Switch branch: {"branch": 77} or {"branch": "all"} |
Employees
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
employees. |
The list: search, status, employee_number, branch_id, salary_status, per_page |
GET |
/ |
employees. |
One employee |
GET |
/ |
employees. |
One employee by their employee number |
POST |
/ |
employees. |
Add an employee (within the license's headcount) |
PATCH |
/ |
employees. |
Change the fields you send |
GET |
/ |
employees. or self. |
The company directory |
All employee endpoints: the file, professional data, termination, rehire, salary packages and more.
Attendance and clocking
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
self. |
My month of attendance and today's records |
POST |
/ |
self. |
Clock in (the clocking security checks apply) |
POST |
/ |
self. |
Clock out |
GET |
/ |
attendance. |
Records: from, to, employee, shift, state |
POST |
/ |
attendance. |
Add a record, or correct a day with "replace": true |
GET |
/ |
attendance. |
The team's month, totals per employee |
GET |
/ |
attendance. |
One day of the team: counts and each person's status |
GET |
/ |
attendance. |
Every punch with its security checks |
All attendance endpoints, and shifts, timesheets and overtime.
Leaves
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
self. |
My balances this year (or ?year=) and my requests |
POST |
/ |
self. |
Ask for time off: leave_type_id, start_date, end_date, reason (multipart with attachment when the type needs one) |
GET |
/ |
leaves. or leaves. or self. or self. (own, or leaves.) |
One leave with its balance |
POST |
/ |
leaves. or self. |
Withdraw my leave |
POST |
/ |
leaves. or requests. or self. (the approver of the step) |
decision: approved or rejected, decision_note |
GET |
/ |
leaves. |
The team's leaves: status, type, employee, from, to |
POST |
/ |
leaves. |
HR records an approved leave for an employee |
GET |
/ |
leave_setup. |
The leave types |
All leave endpoints, and balances and adjustments.
Payroll
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
self. |
My payslips (approved runs only) |
GET |
/ |
payroll. or self. |
One payslip |
GET |
/ |
payroll. or self. |
The payslip as a PDF file |
GET |
/ |
payroll. |
Payroll runs, newest first |
GET |
/ |
payroll. |
A run with its payslips |
POST |
/ |
payroll. |
Approve a run (or send it through its approval chain) |
GET |
/ |
payroll. |
The approved regular run of a month (2026-10); 404 before it is approved |
All payroll endpoints, and financial transactions, loans and salaries.
Requests and approvals
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
self. |
My requests |
POST |
/ |
requests. or self. |
File a request of a type, with its fields (and an attachment) |
POST |
/ |
requests. or self. |
Withdraw my pending request |
POST |
/ |
leaves. or requests. or self. (the approver of the step) |
decision: approved or rejected, decision_note |
GET |
/ |
requests. or requests. or self. |
The approvals page: tab, status, type |
POST |
/ |
requests. or requests. or self. |
Approve or reject several items at once |
All request endpoints, request types and approvals.
Announcements
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
announcements. or self. |
The announcements this person may read: q, per_page |
GET |
/ |
announcements. or self. |
One announcement |
POST |
/ |
announcements. |
Publish: title and body as {"en", "ar"}, pinned, starts_on, expires_on |
DELETE |
/ |
announcements. |
Delete |
All announcement endpoints, and events and tasks.
Documents
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
employees. or self. (filtered by what you may see) |
Employee and company documents |
POST |
/ |
employees. or self. (filtered by what you may manage) |
Upload a document (multipart) |
GET |
/ |
None | Download the file |
All document endpoints, and HR letters.
Devices
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
devices. |
Fingerprint and access devices |
GET |
/ |
devices. |
One device |
POST |
/ |
devices. |
Send a command to the device |
GET |
/ |
devices. |
The people on the device |
All device endpoints, and door events.
Webhooks and reports
| Method | Path | Permission | What |
|---|---|---|---|
GET |
/ |
integrations. |
Your webhooks (token only, not API keys) |
GET |
/ |
integrations. |
The delivery log |
GET |
/ |
None (the reports your role allows) | The reports you can run |
See Webhooks for events and signatures, and the reports section for running and exporting reports.
Last updated: