curl --request GET \
--url https://api.absentify.com/api/v1/absences_per_day \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.absentify.com/api/v1/absences_per_day"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.absentify.com/api/v1/absences_per_day', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.absentify.com/api/v1/absences_per_day",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.absentify.com/api/v1/absences_per_day"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.absentify.com/api/v1/absences_per_day")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.absentify.com/api/v1/absences_per_day")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"type": "request",
"member": {
"id": "<string>",
"custom_id": "<string>",
"name": "<string>",
"email": "<string>"
},
"date": "<string>",
"start_at": "morning",
"end_at": "lunchtime",
"request": {
"id": "<string>",
"duration": 123,
"workday_absence_duration": 123,
"status": "<string>",
"take_from_allowance": true,
"allowance_type": {
"id": "<string>",
"name": "<string>",
"default_name": "<string>",
"ignore_allowance_limit": true,
"allowance_unit": "days"
},
"leave_type": {
"name": "<string>",
"default_name": "<string>",
"id": "<string>",
"leave_unit": "days"
}
},
"public_holiday_day": {
"id": "<string>",
"duration": "<string>",
"names": [
{
"language": "<string>",
"name": "<string>"
}
]
}
}
]{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Get all requests and public holiday per member per day
Get all requests and public holiday per member per day for the start…end window.
The window between start and end may span at most 1826 days (5 years). Wider ranges are rejected with a 400 response, so page through longer periods in smaller windows.
curl --request GET \
--url https://api.absentify.com/api/v1/absences_per_day \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.absentify.com/api/v1/absences_per_day"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.absentify.com/api/v1/absences_per_day', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.absentify.com/api/v1/absences_per_day",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.absentify.com/api/v1/absences_per_day"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.absentify.com/api/v1/absences_per_day")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.absentify.com/api/v1/absences_per_day")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"type": "request",
"member": {
"id": "<string>",
"custom_id": "<string>",
"name": "<string>",
"email": "<string>"
},
"date": "<string>",
"start_at": "morning",
"end_at": "lunchtime",
"request": {
"id": "<string>",
"duration": 123,
"workday_absence_duration": 123,
"status": "<string>",
"take_from_allowance": true,
"allowance_type": {
"id": "<string>",
"name": "<string>",
"default_name": "<string>",
"ignore_allowance_limit": true,
"allowance_unit": "days"
},
"leave_type": {
"name": "<string>",
"default_name": "<string>",
"id": "<string>",
"leave_unit": "days"
}
},
"public_holiday_day": {
"id": "<string>",
"duration": "<string>",
"names": [
{
"language": "<string>",
"name": "<string>"
}
]
}
}
]{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Authorizations
Query Parameters
Date/time in ISO 8601 format, e.g. 2026-06-01 (interpreted as UTC midnight) or 2026-06-01T09:00:00Z. Always include a time zone designator (Z for UTC) when sending a time of day. Localized formats such as 01.06.2026 or 06/01/2026 are misinterpreted and must not be used. The window between start and end may span at most 1826 days (5 years). Wider ranges are rejected with a 400 response, so page through longer periods in smaller windows.
Date/time in ISO 8601 format, e.g. 2026-06-01 (interpreted as UTC midnight) or 2026-06-01T09:00:00Z. Always include a time zone designator (Z for UTC) when sending a time of day. Localized formats such as 01.06.2026 or 06/01/2026 are misinterpreted and must not be used. The window between start and end may span at most 1826 days (5 years). Wider ranges are rejected with a 400 response, so page through longer periods in smaller windows.
en, de, fr, hu, it, pl, pt, ru, es, tr, uk Response
Successful response
request, public_holiday Show child attributes
Show child attributes
For day-based leave types: whether the absence starts in the morning (the whole first day counts) or afternoon (only the second half of the first day). Ignored for hour-based leave types.
morning, afternoon For day-based leave types: whether the absence ends at lunchtime (only the first half of the last day) or end_of_day (the whole last day counts). Ignored for hour-based leave types.
lunchtime, end_of_day Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?