1. Introduction
This article is about the BitaBIZ API.
The API provides access to raw data such as employee master data and registrations, which you can use for integrations, reports, and business intelligence.
This describes how to retrieve raw data via REST or CSV (e.g., vacation days, sick days, employee data).
👉 The BitaBIZ API is not the same as:
Payroll export – The API cannot be used to export data to payroll systems.
HR Reports – The report library in BitaBIZ contains ready-made reports with HR key figures.
💁 API variants:
REST (JSON) → for integrations and developers
CSV (Excel & Power BI) → for reporting and analysis
2. Getting Started
Activate the API key in BitaBIZ:
Setup admin -> Company -> Subscription planStore the API key securely.
Choose the REST (JSON) or CSV (Power BI/Excel) method depending on your needs.
2.1 REST API (JSON)
💁 The REST API can be tested in a desktop tool like Postman.
In Postman, you need to add your company’s API key as x-apikey in the Headers section of your request.
Base URL:
https://api.bitabiz.com/v2/
Authentication:
Add header:
x-apikey: YOUR_API_KEY
Example (cURL):
curl -H "x-apikey: $API_KEY" \
https://api.bitabiz.com/v2/employees/
2.2 CSV (Excel & PowerBI)
3. Endpoints
Endpoint | Method | Returns | Description |
| GET | Employee master data | Retrieves all employees and their master data (e.g., name, department, email, date of employment, approver). |
| GET | Public holidays per employee | Shows public holidays within a period. Used to see how many days off employees have due to national holidays. |
| GET | Registrations for the entire company | Shows all types of registrations (vacation, sick days, time off, mileage, etc.) for all employees. Can be filtered by date, status, and reason code. |
| GET | Registrations for one employee | Shows registrations for a specific employee. Typically used for reporting or integration per person. |
| GET | Balance changes | Shows changes in balances (vacation, other vacation, hour bank, day bank). Covers increase/reduce, payout, and transfer of remaining balance to a new period. |
Examples with endpoints
/employees/
REST
curl -H "x-apikey: $API_KEY" \
https://api.bitabiz.com/v2/employees/
CSV
https://api.bitabiz.com/pbi/INSERT_API_KEY_HERE/employees
/registrations
REST
curl -H "x-apikey: $API_KEY" \
"https://api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31"
CSV
https://api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31
4. Parameters
How to use parameters in API requests:
Parameters are added in the URL
The first parameter starts with
?Additional parameters are added with
&
Parameter | Format / values | Description |
? | Symbol | Used to start the parameter section in a URL. Example: |
& | Symbol | Used to add more parameters after the first. Example: |
from | YYYY-MM-DD or | Start date for data extraction. Example: |
to | YYYY-MM-DD | End date for data extraction. Example: |
status | APP, PEN, REJ, DEL, CHK | Filters by registration status: APP = Approved PEN = Pending REJ = Rejected DEL = Deleted CHK = Check in without check out (active registration). |
inactive | true / false | Used on |
reason | E.g., HH, IS, VT | Filters by registration type. Example: |
employeeGuid | Text string (GUID) | Unique employee ID, used to retrieve registrations for a specific employee: |
Example with status
Rest
curl -H "x-apikey: $API_KEY" \
"https://api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31&status=pen"
CSV
https://api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31&status=pen
💡 Tip about parameters in the API
?is used to start parameters in the URL.&is used to add more parameters in sequence.You can combine multiple parameters:
...?from=2025-01-01&to=2025-12-31&status=APP...?from=2025-01-01&to=2025-12-31&reason=HH,IS
By default, only APP (Approved) registrations are returned. If you need other or multiple registration statuses, you must add them with the status parameter (comma-separated).
Parameters can be used in both the REST and CSV versions of the API.
5. Registration types (reason codes)
Registration type | Reason code | Description |
Vacation | HH | Regular vacation (statutory vacation days). |
Other vacation | HF | Extra days off, e.g., 6th vacation week or care days. In the API, these are always called “Other vacation,” regardless of the policy name. |
Sick | IS | Own sick day. |
Child sick | IC | Child’s first sick day. |
Other leave / parental leave | L | E.g., maternity leave, pregnancy leave, paternity leave, or other leave. |
Custom registration types | P | E.g., seminar, fixed day off, travel, on-call duty, work from home. |
Overtime | VO | Overtime hours (often with different rates via job codes). |
Time off | VT | Taking time off earned through overtime. |
Time registration | TT | Registration of work hours without hour bank. E.g., EU time, project hours, payroll hours. |
Mileage | MI | Registration of mileage in kilometers. |
Flex time | FT | Time registration with associated hour bank. |
Day bank – plus days | DO | Earning extra days off for the day bank. |
Day bank – minus days | DT | Taking a day off. E.g., senior day, extra company day off. |
Payout of vacation | RHH | Payout of earned vacation balance. |
Payout of other vacation | RHF | Payout of other vacation (e.g., 6th vacation week or care days). |
Payout of hour bank (hours) | RVT | Payout of hours from the hour bank. |
Payout of day bank (days) | RDT | Payout of days from the day bank. |
Example with reason
A single reason (vacation = HH)
REST
curl -H "x-apikey: $API_KEY" \
"https://api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31&reason=HH"
CSV
https://api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31&reason=HH
Multiple reasons (vacation + sick day = HH, IS)
REST
curl -H "x-apikey: $API_KEY" \
"https://api.bitabiz.com/v2/registrations?from=2025-01-01&to=2025-12-31&reason=HH,IS"
CSV
https://api.bitabiz.com/pbi/INSERT_API_KEY_HERE/registrations?from=2025-01-01&to=2025-12-31&reason=HH,IS
6. Known Issues
⚠️ Employee names on registrations are historical. That means if an employee’s name changes, the name on historical registrations remains unchanged. Use /employees for current names.
⚠️ Hour bank earnings in Adjustments are only supported from 2022-01-01.
⚠️ GDPR deletion may remove historical data depending on your rules.
FAQ
Why does the API show absences that count as 0 days?
Why does the API show absences that count as 0 days?
The absence types vacation (HH), other vacation (HF), sick (IS), child sick (IC), and leave (L) are not counted on:
Weekends (Saturday/Sunday)
National holidays
Days off
Excel/CSV output:
Column | Value | Weekend | Holiday | Day off |
| Number of days | 0, if the registration falls on a weekend | 0, if on a holiday | 0, if on a day off |
| Number of hours | Hours are only calculated on workdays according to standard hours | - | - |
How do I activate our company's API key, and who can do it?
How do I activate our company's API key, and who can do it?
You need the "Setup admin" role to activate access to the API.
The API is activated on the subscription plan page in your account.
Click: Setup admin > Company > Subscription plan > Scroll down to the section "Report library & API integration" > Set to "ON" > Update subscription plan.
How do spanned and spannedDay work in BitaBIZ API data?
How do spanned and spannedDay work in BitaBIZ API data?
registrations.spanned indicates whether a registration was created as a single entry covering several consecutive days, i.e., spanning a longer period.
Example:
If an employee registers a week of sick leave (e.g., May 11 – May 15) as a single registration in BitaBIZ, this will be a spanned registration. In the API response, this will appear as:
registrations.spanned = true
registrations.spannedDay indicates the sequence of each day in the consecutive registration:
May 11 →
spannedDay = 0May 12 →
spannedDay = 1etc.
The columns registrations.amount.days and registrations.amount.hours show the actual number of absence days and hours per entry in the API response.
If a day in the period is a holiday (e.g., May 14 – Ascension Day), then:
registrations.amount.days = 0 registrations.amount.hours = 0
because sick leave is not counted in the statistics on holidays.
If the employee instead registers a single sick day (e.g., May 18), the API response will be:
registrations.spanned = false registrations.spannedDay = 0
since this is a one-off registration for a single day and not a consecutive period.
Appendix: Data schemas per endpoint
Below you will find a complete overview of the fields provided by each endpoint.
This reference is useful when you need to understand exactly what data is returned in the API response.
/employees/ – Employee master data
BitaBIZ name/ID | API ID | Description |
Guid | Guid | Unique employee identification (used for joins) |
Name | Name | First and last name |
Full name | FullName | First name, middle name, last name |
Department | Department | Department |
p-Number | pNumber | P-number for DST (DK statistics) |
Job Title | JobTitle | Employee's title |
Employee number | EmployeeId | Internal employee ID |
Payroll number | EmployeePayrollId | ID for external payroll system |
Office location | Country.Name | Office/country tag |
Region | Country.Region | Country/region/calendar group |
Group company | Group.Company | Group company |
PersonalInfo.Email | ||
Birthday | PersonalInfo.Birthdate | Date of birth |
Mobile | PersonalInfo.Mobile | Mobile number |
Employment start | Employment.Start | Date of employment |
Employment end | Employment.End | Termination date |
Last login | LastLogin | Last logged in |
Active | Active | True/false (use ?inactive=true to get all) |
Policy ID | SalaryAgreement.Id | Linked policy |
Policy name | SalaryAgreement.Name | Policy name |
Work week | SalaryAgreement.WorkingDays | Number of workdays/week |
Work hours/week | SalaryAgreement.HoursPerWeek | Standard hours/week |
Vacation days/year | SalaryAgreement.VacationDays | Standard vacation days |
Other vacation/year | SalaryAgreement.OtherVacationDays | Other vacation days |
Week days | SalaryAgreement.WeekDaysCsv | Standard workdays and hours per day |
Secondary week | SalaryAgreement.WeekRule | Odd/Even week rule |
Breaks | SalaryAgreement.BreaksCSV | Active breaks (e.g., 12:00–12:30) |
Timezone | Timezone | Employee's timezone |
Tags | Tags | Payroll/Employee/HR tags |
Approvers | Approvers | E-mail of approver(s) |
Monthly Salary/ Hourly rate | CostPrice | Salary/ hourly rate/ cost price |
/employees/nationalholidays – Holidays per employee
BitaBIZ name/ID | API ID | Description |
Guid | Guid | Unique employee ID |
Name | Name | First and last name |
Sum of days | SumOfDays | Total holidays in days |
Sum of hours | SumOfHours | Total holidays in hours |
Count | HolidaysCount | Number of holidays |
Holiday name | Holidays.Description | E.g., “New Year's Day” |
Holiday start | Holidays.StartDate | Start date |
Holiday end | Holidays.EndDate | End date |
Day of week | Holidays.DayOfWeek | Monday–Sunday |
Sum days | Holidays.SumDays | 1 = full day, 0.5 = half day |
Sum hours | Holidays.SumHours | Hours according to employee's standard hours |
/registrations – Registrations
BitaBIZ name/ID | API ID | Description |
Guid | Guid | Unique registration ID |
Name | Name | Name linked to the registration (historical) |
Registration ID | Registration.Id | Unique registration ID |
Spanned | Registration.Spanned | True if the registration spans multiple days |
Spanned day | Registration.SpannedDay | Day number in a span (0 = first day) |
Date | Registration.Date | Date of the registration |
Time start | Registration.TimeStart | Start time |
Time end | Registration.TimeEnd | End time |
Amount days | Registration.Amount.Days | Number of days |
Amount hours | Registration.Amount.Hours | Number of hours |
Amount km | Registration.Amount.Km | Number of km |
Amount unit | Registration.Amount.Unit | Unit (days, hours, km) |
Week no. | Registration.DateDetails.Week | Week number |
Weekday no. | Registration.DateDetails.Weekday | Day number (1=Monday) |
Weekday name | Registration.DateDetails.WeekDayEnglish | Weekday |
Holiday overlap | Registration.DateDetails.Holiday | True if overlaps with a public holiday |
Holiday name | Registration.DateDetails.HolidayDetails.Description | Name of the national holiday |
Type | Registration.Type | E.g. vacation, sick, overtime, time off |
Subtype | Registration.Subtype | Job code/subtype |
Cost center ID | Registration.Jobcode.CostCenterId | TT job code Cost Center ID |
Reason | Registration.Reason | Reason code (HH, IS, etc.) |
Created | Registration.Created | Creation timestamp |
Note | Registration.Note | Comment (sick notes only visible to approver in email/SMS) |
Office status | Registration.OfficeStatus | At work/Working elsewhere/Out of office |
Payroll type ID | Registration.JobCode.Id | Payroll code for payroll export |
Job code payroll | Registration.JobCode.IsPayroll | True if payroll-relevant |
Project name | Registration.Project.Name | Project name |
Project GUID | Registration.Project.GUID | System-generated unique project ID |
Project ID | Registration.Project.ProjectId | User-defined project ID |
/adjustments – Balance changes
BitaBIZ name/ID | API ID | Description |
Employee GUID | employeeGuid | Unique employee ID |
Employee name | employeeName | First and last name |
Payroll admin | financeName | Name of payroll admin who made the change |
Policy name | policyName | Policy name |
Adjustment type | adjustmentType | Balance: Vacation, Other vacation, Hour bank, Day bank |
Adjustment reason | adjustmentReason | Reason code: HH, HF, VT, DT |
Adjustment action | adjustmentAction | E.g. manual, scheduled, payout, transferred |
Created | created | Date of creation |
Modified | modified | Date the change is effective from |
Value | value | Number of days/hours changed |
Rate | rate | Conversion from days to hours |
Note | note | Optional comment |
