Skip to main content

BitaBIZ API - Documentation

CSV (Excel & PBI) & REST (JSON)

Written by Esben Hedegaard

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

  1. Activate the API key in BitaBIZ:
    Setup admin -> Company -> Subscription plan

  2. Store the API key securely.

  3. 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.

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

/employees/

GET

Employee master data

Retrieves all employees and their master data (e.g., name, department, email, date of employment, approver).

/employees/nationalholidays

GET

Public holidays per employee

Shows public holidays within a period. Used to see how many days off employees have due to national holidays.

/registrations

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.

/registrations/{employeeGuid}

GET

Registrations for one employee

Shows registrations for a specific employee. Typically used for reporting or integration per person.

/adjustments

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: ...?from=2025-01-01.

&

Symbol

Used to add more parameters after the first. Example: ...?from=2025-01-01&to=2025-12-31&status=APP.

from

YYYY-MM-DD or lastXXmonths

Start date for data extraction. Example: from=2025-01-01. With last12months, data is retrieved from today and 12 months back.

to

YYYY-MM-DD

End date for data extraction. Example: to=2025-12-31. Must be combined with from.

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 /employees. Default = only active employees. Set inactive=true to also retrieve inactive ones.

reason

E.g., HH, IS, VT

Filters by registration type. Example: reason=HH (vacation), reason=IS (sick). Multiple codes can be combined with a comma.

employeeGuid

Text string (GUID)

Unique employee ID, used to retrieve registrations for a specific employee: /registrations/{employeeGuid}.

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?

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

registrationAmountDays

Number of days

0, if the registration falls on a weekend

0, if on a holiday

0, if on a day off

registrationAmountHours

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?

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?

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 = 0

  • May 12 → spannedDay = 1

  • etc.

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

Email

PersonalInfo.Email

E-mail

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

Did this answer your question?