Dokumentation
1. Einleitung
Die Holiday API liefert gesetzliche Feiertage und Gedenktage nach Land und/oder Religion. Der Business-Days-Endpunkt (GET /api/business-days) verwendet dieselbe API-Key-Authentifizierung. Alle Anfragen erfordern die Authentifizierung mit einem API-Key. Du kannst API-Keys in deinem Dashboard erstellen und verwalten. Der Free-Plan (Standard) verwendet dieselbe Basis-URL und denselben API-Key, damit du die Integration vor dem Livegang testen kannst.
2. Free-Plan (Standard)
Jedes verifizierte Konto startet im Free-Plan. Du kannst dieselben Endpunkte, Parameter und dieselbe Authentifizierung verwenden, um deine Integration zu entwickeln und zu testen. Wenn der Free-Plan nicht mehr ausreicht, kannst du im Dashboard upgraden.
Was gleich bleibt
Du erhältst Zugriff auf dieselbe Holiday API: dieselbe Basis-URL, GET /api/holidays und dieselben Query-Parameter (country, religion, from, to, lang, region, provisional, type, scope). GET /api/business-days ist ebenfalls verfügbar, mit derselben Authentifizierung, und das Response-Format ist identisch. So kannst du gegen die echte API entwickeln und testen, ohne beim Upgrade Code zu ändern.
Einschränkungen
- Monatliches Anfragekontingent: Der Free-Plan enthält eine feste Anzahl von Anfragen pro Kalendermonat. Wenn du das Kontingent erreichst, werden Anfragen bis zum nächsten Monat oder bis zu einem Upgrade blockiert.
- Funktionslimits: Der Free-Plan begrenzt API-Keys, Sprachen und den Zugriff auf Untereinheiten-Feiertage. Siehe Preise für alle Limits.
- Keine Übernutzung im Free-Plan: Der Free-Plan enthält keine kostenpflichtige Übernutzung. Upgrade, um nach Erreichen des Limits fortzufahren.
Für den vollständigen Ergebnissatz und produktionsreife Limits wähle einen Plan unter Preise oder gehe in deinem Dashboard zu Nutzung bzw. Abrechnung.
3. Authentifizierung
Sende deinen API-Key im Authorization-Header als Bearer-Token. Erstelle Schlüssel auf der Seite API-Keys in deinem Dashboard.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/holidays?country=US"4. Basis-URL
Verwende https://api.holidaydb.com für alle API-Anfragen. Für CURL und serverseitige Integrationen musst du diese absolute URL verwenden.
5. GET /api/holidays
Liefert Feiertage, gefiltert nach country und/oder religion. Mindestens einer von country oder religion ist erforderlich.
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Durch Kommas getrennte 2-stellige ISO-Ländercodes (z. B. US, DE, FR). |
religion | string | Durch Kommas getrennte Religions-Slugs (z. B. christian, islamic). |
region | string | Untereinheiten-Code (z. B. US-DC, DE-BY). Gilt für das erste Land, wenn mehrere angegeben sind. Nur Pro und Full; im Basic-Plan liefert region den Status 403 (weglassen für nur nationale Ergebnisse). |
from | date | Startdatum (YYYY-MM-DD). |
to | date | Enddatum (YYYY-MM-DD). |
lang | string | Sprache für Feiertagsnamen. Nur Full-Plan. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Ohne lang gilt das erste Accept-Language-Tag (gleiche Regeln). |
provisional | true | false | Filter nach vorläufigen (true) oder bestätigten (false) Daten. |
substitute | true | false | Filter für Ersatz-/beobachtete Tage: true (nur Ersatz), false (ausschließen) oder weglassen (beides). |
include | string | Optional. Kommagetrennt: canonical (bettet canonical in Ersatz-Zeilen ein), substitute (bettet substitutes in kanonische Zeilen ein). meta wird hier nicht unterstützt (verwende die Standard-Feiertagsfelder in jedem Objekt). |
type | string | public_holiday oder observance; für mehrere Werte kommagetrennt. |
scope | string | national oder subnational; für mehrere Werte kommagetrennt. |
Response: JSON-Array von Feiertagsobjekten mit uuid, country_code, religion_slug, type, scope, region_codes, region_names, start_date, end_date, provisional, substitute, summary, language. Für Länderkalender (country_code nicht null) beschreiben type und scope territoriale Kategorien (gesetzlicher Feiertag vs. observance, national vs. subnational). Für religiöse Kalender (religion_slug nicht null und oft country_code null) können type und scope "unknown" sein und sollten nicht territorial interpretiert werden; verwende religion_slug (und Datumswerte), um mit diesen observances zu arbeiten. Ersatzfeiertage enthalten canonical_uuid. Verwende include=canonical, um den kanonischen Feiertag pro Ersatz einzubetten; verwende include=substitute, um ein substitutes-Array pro kanonischem Feiertag einzubetten.
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/holidays?country=US"Beispielantwort
[
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"country_code": "US",
"religion_slug": null,
"type": "public_holiday",
"scope": "national",
"region_codes": [],
"region_names": [],
"start_date": "2026-07-04",
"end_date": "2026-07-04",
"provisional": false,
"summary": "Independence Day",
"language": "en"
}
// ... weitere Feiertagsobjekte in der vollständigen Antwort
]6. GET /api/business-days
Ohne Code ausprobieren
Der Geschäftstage-Rechner auf dieser Seite lässt dich ein Land und Jahr auswählen, optional einen einzelnen Monat und optional ein Bundesland/eine Provinz, wenn regionale Feiertage von der Zählung abgezogen werden sollen. Du kannst auch festlegen, welche Wochentage als Arbeitstage gelten. Das Ergebnis entspricht dieser API.
Liefert, wie viele Arbeitstage in einem Kalendermonat oder ganzen Jahr für ein ISO-Land liegen. Standardmäßig gilt die westliche Arbeitswoche Montag bis Freitag (ISO-Wochentage 1,2,3,4,5); überschreibbar über weekdays. Standardmäßig werden nur nationale Feiertage ausgeschlossen. Mit optionalem region werden zusätzlich subnationale Feiertage ausgeschlossen, deren region_codes diesen ISO-3166-2-Code enthalten: dieselbe Regel wie bei GET /api/holidays?country=...®ion=... (nationale Tage sind immer enthalten; region bedeutet nicht „nur Region“). Dieser Endpunkt erfordert denselben Bearer-API-Key und dieselben Token-Berechtigungen wie GET /api/holidays.
Subdivision-Filterung erfordert einen Plan mit Untereinheiten-Feiertagen (Pro/Full), wie bei der Holidays-API.
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. KE, NG). |
region | string | Optional. ISO-3166-2-Untereinheit (z. B. US-CA oder CA mit country=US). Schließt nationale Feiertage plus subnationale Feiertage dieser Region aus. Für nur nationale Zählung weglassen. Untereinheiten-Filterung ist nur in Pro- und Full-Plänen verfügbar. In Basic liefert region einen 403-Fehler, dass Untereinheiten-Feiertage nicht enthalten sind (kein stiller Fallback auf national-only); für national-only in Basic region weglassen. |
year | integer | Erforderlich im Kalendermodus. Muss in einem rollierenden Fenster um das aktuelle Kalenderjahr des Servers liegen: standardmäßig fünf Jahre davor bis fünf Jahre danach (inklusive), damit der Bereich nahe an unseren veröffentlichten Feiertagsdaten bleibt. Nicht mit from/to senden. |
month | integer | Optional im Kalendermodus. Monat 1-12; weglassen für das volle Kalenderjahr (1. Januar bis 31. Dezember). Nicht mit from/to senden. |
from | date | Range-Modus: Startdatum YYYY-MM-DD, inklusive. Nur zusammen mit to verwenden (ohne year/month). Gleiche Zählregeln wie im Kalendermodus. Die inklusive Kalendertagspanne von from bis to darf 731 Tage (ca. zwei Jahre) nicht überschreiten. |
to | date | Range-Modus: Enddatum YYYY-MM-DD, inklusive. Muss auf oder nach from liegen. Zusammen mit from maximal 731 inklusive Kalendertage. |
weekdays | string | Optional. Kommagetrennte ISO-Wochentage 1 (Montag) bis 7 (Sonntag), z. B. 1,2,3,4,5 für Mo-Fr (Standard, wenn weggelassen). Duplikate werden ignoriert; Reihenfolge wird aufsteigend normalisiert. Ungültige Werte liefern 422. |
lang | string | Optional. Sprache für Feiertagsnamen im holidays-Array bei include=1. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
include | string | Optional. An: 1 oder true fügt ein holidays-Array hinzu (vollständige Zeilenmetadaten und verschachtelte canonical/substitutes, wenn der Kalender diese definiert). Aus: weglassen, leer, 0, oder false (kein holidays im JSON). |
Response: JSON-Objekt mit country_code, region (normalisierter Code oder null), weekdays (Array der tatsächlich verwendeten Integer-Wochentage), year und month (beide null im Range-Modus), range (from-/to-Daten, immer das aufgelöste inklusive Fenster) und business_days (Integer-Anzahl). Wenn include 1 oder true ist, enthält die Antwort zusätzlich holidays: Feiertage, die in die Zählung eingingen (nur national bei fehlendem region; national plus passende subnationale bei gesetztem region), mit vollständigen Feldern wie im letzten Beispiel-Tab.
Wenn wir den Kalender dieses Landes noch nicht abdecken, liefert die API 404 mit error und country_code (nicht derselbe Body wie „Country not found“ bei GET /api/holidays).
Die ersten vier Beispiel-Tabs lassen include weg (kein holidays im Beispiel-JSON). Der letzte Tab zeigt include=1 mit holidays-Array.
Die Beispiele unten verwenden 2026. Die business_days-Werte wurden manuell gegen offizielle nationale Regeln geprüft: US-Bundesfeiertage (OPM); deutsche Feiertage, die an diesem Datum in allen Bundesländern gelten; kanadische bundesgesetzliche Feiertage (Juli 2026 hat nur Canada Day an einem Mittwoch). Feiertage am Wochenende reduzieren die Werktagsanzahl nicht. Live-API-Werte folgen den in HolidayDB gespeicherten Feiertagen und sollten bei gleichen Regeln übereinstimmen; wenn in unseren Daten ein Eintrag ergänzt oder korrigiert wird, können sich Zählungen leicht ändern.
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/business-days?country=US&year=2026&month=1"Beispielantwort
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"range": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"business_days": 20
}7. GET /api/working-hours
Ohne Code ausprobieren
Der Arbeitszeit-Rechner auf dieser Seite verwendet dieselben Feiertagsregeln wie business-days plus eine Arbeitstagsdauer (workday), damit du gesamte Arbeitsminuten und -stunden berechnen kannst.
Liefert, wie viele working minutes (plus eine praktische Stunden/Minuten-Aufschlüsselung) in einen Kalendermonat, ein volles Jahr oder einen inklusiven Datumsbereich für ein ISO-Land fallen. Es verwendet dieselben Wochentags- und Feiertagsregeln wie GET /api/business-days und multipliziert dann mit einer erforderlichen workday-Dauer.
Subdivision-Filterung (region) erfordert einen Plan mit Untereinheiten-Feiertagen (Pro/Full), wie bei der Holidays-API und business-days.
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. KE, NG). |
region | string | Optional. ISO-3166-2-Untereinheit (z. B. US-CA oder CA mit country=US). Gleiche Regeln und Planlimits wie bei business-days. |
year | integer | Erforderlich im Kalendermodus. Gleiche rollierende Fensterregeln wie bei business-days. Nicht mit from/to senden. |
month | integer | Optional im Kalendermodus. Monat 1-12; weglassen für das volle Kalenderjahr. Nicht mit from/to senden. |
from | date | Range-Modus: Startdatum YYYY-MM-DD, inklusive. Nur mit to verwenden (ohne year/month). Gleiche Maximalspann-Regeln wie bei business-days. |
to | date | Range-Modus: Enddatum YYYY-MM-DD, inklusive. Muss auf oder nach from liegen. |
weekdays | string | Optional. Wie bei business-days: kommagetrennte ISO-Wochentage 1-7. Standard Mo-Fr. |
lang | string | Optional. Sprache für Feiertagsnamen im holidays-Array bei include=1. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
include | string | Optional. Wie bei business-days: 1/true enthält ein holidays-Array; weglassen/leer/0/false lässt es weg. |
workday | string | Erforderlich. Arbeitstagsdauer im Format H:MM oder HH:MM (z. B. 08:00, 7:30). Mindestens 00:01 und höchstens 24:00. |
Response: JSON-Objekt mit denselben Basisfeldern wie business-days plus working_days, workday, workday_minutes, working_minutes und working_hours (Stunden/Minuten-Aufschlüsselung).
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/working-hours?country=US&year=2026&month=1&workday=08:00"Beispielantwort
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"range": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"working_days": 20,
"workday": "08:00",
"workday_minutes": 480,
"working_minutes": 9600,
"working_hours": {
"hours": 160,
"minutes": 0
}
}8. GET /api/salary-proration
Ohne Code ausprobieren
Nutze den Gehaltsanteils-Rechner auf dieser Seite, um ein Gehalt anhand von Arbeitstagen innerhalb eines Abrechnungszeitraums zu proratisieren (Wochentage minus Feiertage).
Proratisiert einen Gehaltsbetrag auf Basis von working days in einem ausgewählten Fenster innerhalb eines Abrechnungszeitraums. Working days werden als ausgewählte ISO-Wochentage (Standard Mo-Fr) minus Feiertage gezählt (und optional regionale Feiertage, wenn region verwendet wird).
Du kannst den Abrechnungszeitraum über den Kalendermodus (year/month) oder über explizite Daten (period_from/period_to) wählen. Optional kannst du ein benutzerdefiniertes Prorationsfenster (from/to) innerhalb dieses Zeitraums angeben; andernfalls ist das Fenster der gesamte Zeitraum.
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, KE). |
region | string | Optional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu. |
weekdays | string | Optional. Kommagetrennte ISO-Wochentage 1-7. Standard ist Mo-Fr (1,2,3,4,5). |
lang | string | Optional. Sprache für Feiertagsnamen im holidays-Array bei include=1. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
salary | string | Erforderlich. Dezimalbetrag als String (z. B. 5000, 5000.00, 1234.5). |
salary_scale | integer | Optional. Dezimalstellen zur Normalisierung von salary (0-6). Standard: 2. |
year | integer | Kalendermodus. Erforderlich bei month oder wenn period_from/period_to weggelassen werden. Gleiche rollierende Jahresfensterregeln wie bei business-days. |
month | integer | Kalendermodus. Optional 1-12; weglassen für einen ganzjährigen Abrechnungszeitraum. Nicht mit period_from/period_to kombinieren. |
period_from | date | Expliziter Zeitraum-Modus. Startdatum des Abrechnungszeitraums YYYY-MM-DD, inklusive. Muss zusammen mit period_to verwendet werden. Nicht mit year/month kombinieren. |
period_to | date | Expliziter Zeitraum-Modus. Enddatum des Abrechnungszeitraums YYYY-MM-DD, inklusive. Muss auf oder nach period_from liegen. |
from | date | Optionaler Start des Prorationsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Abrechnungszeitraums liegen. Mit to verwenden. |
to | date | Optionales Ende des Prorationsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Abrechnungszeitraums liegen. |
include | string | Optional. Gleiche Semantik wie business-days: 1/true enthält ein holidays-Array für das Prorationsfenster; weglassen/leer/0/false lässt es weg. |
Response: JSON-Objekt mit period_working_days, window_working_days, ratio, salary und prorated_salary. Verwende period für die Grenzen des Abrechnungszeitraums und range für das Prorationsfenster.
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/salary-proration?country=US&year=2026&month=1&salary=5000"Beispielantwort
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"period": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"range": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"period_working_days": 20,
"window_working_days": 20,
"ratio": "1.000000",
"salary": "5000.00",
"salary_scale": 2,
"prorated_salary": "5000.00"
}9. GET /api/leave-pto
Ohne Code ausprobieren
Nutze den Urlaubs-/PTO-Rechner auf dieser Seite, um Ansammlung, genommenen Urlaub und Endsaldo (Stunden + Tage) zu modellieren.
Berechnet angesammelten Urlaub, genommenen Urlaub (optional mit Urlaubsfenster) und Endsaldo für einen Berichtszeitraum. Arbeitszeit wird aus ausgewählten weekdays minus Feiertagen für das gewählte country und optional region abgeleitet.
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE). |
region | string | Optional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu. |
weekdays | string | Optional. Kommagetrennte ISO-Wochentage 1-7. Standard ist Mo-Fr (1,2,3,4,5). |
workday | string | Erforderlich. Arbeitstagsdauer im Format H:MM oder HH:MM (z. B. 08:00, 7:30). Wird zur Berechnung von Stunden und abgeleiteten Tagen verwendet. |
lang | string | Optional. Sprache für Feiertagsnamen im holidays-Array bei include=1. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
include | string | Optional. 1/true enthält ein holidays-Array (für das Urlaubsfenster, wenn angegeben, sonst für den gesamten Berichtszeitraum). |
year | integer | Kalendermodus. Erforderlich bei month oder wenn period_from/period_to weggelassen werden. |
month | integer | Kalendermodus. Optional 1-12; weglassen für einen ganzjährigen Berichtszeitraum. Nicht mit period_from/period_to kombinieren. |
period_from | date | Expliziter Zeitraum-Modus. Start des Berichtszeitraums YYYY-MM-DD, inklusive. Muss zusammen mit period_to verwendet werden. Nicht mit year/month kombinieren. |
period_to | date | Expliziter Zeitraum-Modus. Ende des Berichtszeitraums YYYY-MM-DD, inklusive. Muss auf oder nach period_from liegen. |
from | date | Optionaler Start des Urlaubsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Berichtszeitraums liegen. Mit to verwenden. |
to | date | Optionales Ende des Urlaubsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Berichtszeitraums liegen. |
from[] / to[] | date[] | Optional. Mehrere Urlaubsfenster. Wiederholte Paare von from[] und to[] angeben (gleiche Anzahl). Fenster können sich überlappen; Überlappungen werden zusammengeführt, damit Tage nicht doppelt gezählt werden. Bei mehreren Fenstern enthält die Antwort leave_windows und leave ist null. |
taken_hours_override | string | Optional. Überschreibt die berechnete genommene Zeit für das Urlaubsfenster (Dezimalstunden-String, z. B. 7.5). |
carryover_hours | string | Optional. Anfangssaldo (kann negativ sein) als Dezimalstunden-String. |
accrual_rate_hours_per_workday | string | Optional. Ansammlungsrate pro Arbeitstag (Dezimalstunden). Gegenseitig exklusiv mit accrual_hours_per_month / accrual_hours_per_year. |
accrual_hours_per_month | string | Optional. Ansammlungsbetrag für einen vollen Kalendermonat (Dezimalstunden). Erfordert, dass der Berichtszeitraum ein voller Kalendermonat ist (year+month verwenden). |
accrual_hours_per_year | string | Optional. Ansammlungsbetrag für ein volles Kalenderjahr (Dezimalstunden). Erfordert, dass der Berichtszeitraum ein volles Kalenderjahr ist (year ohne month verwenden). |
accrual_cap_hours | string | Optional. Wenn angegeben, wird der Endsaldo auf diesen Wert begrenzt (Dezimalstunden). |
Response: JSON-Objekt mit Zeitraumgrenzen, Arbeits-Summen und hybriden Saldenfeldern: accrued_hours/taken_hours/ending_balance_hours plus abgeleitete *_days-Werte.
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/leave-pto?country=US&year=2026&month=1&workday=08:00&accrual_hours_per_month=8"Beispielantwort
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": 1,
"workday": "08:00",
"workday_minutes": 480,
"period": {
"from": "2026-01-01",
"to": "2026-01-31"
},
"period_working_days": 21,
"accrued_hours": "8.00",
"taken_hours": "0.00",
"ending_balance_hours": "8.00"
}10. GET /api/sla-deadline
Berechnet ein Fälligkeitsdatum durch Hinzufügen von Arbeitstagen zu einem Startdatum, unter Ausschluss von Wochenenden und Feiertagen für das gewählte country und optionale region.
Ohne Code ausprobieren
Nutze den SLA-Fristen-Rechner auf dieser Seite für eine schnelle Fälligkeitsprüfung.
Query-Parameter
Erforderliche Parameter sind country, start und sla_business_days.
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE). |
start | date | Erforderlich. Startdatum YYYY-MM-DD. Das Startdatum wird als Tag 0 behandelt. |
sla_business_days | integer | Erforderlich. Anzahl der Arbeitstage, die nach start addiert werden (0 liefert denselben Tag). |
region | string | Optional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu. |
weekdays | string | Optional. Kommagetrennte ISO-Wochentage 1-7 (Standard Mo-Fr). |
include | string | Optional. 1/true enthält ein holidays-Array für den Scan-Bereich. |
lang | string | Optional. Sprache für Feiertagsnamen bei include=1. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
Response: JSON-Objekt mit deadline und zugehörigen Kontextfeldern (country/region, weekdays und Scan-Bereich).
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/sla-deadline?country=US&start=2026-01-02&sla_business_days=1"Beispielantwort
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"start": "2026-01-02",
"sla_business_days": 1,
"deadline": "2026-01-05"
}11. GET /api/delivery-date
Berechnet ein voraussichtliches Lieferdatum durch Hinzufügen von Arbeitstagen zu einem Startdatum, unter Ausschluss von Wochenenden und Feiertagen für das gewählte country und optionale region.
Ohne Code ausprobieren
Nutze den Lieferdatum-Rechner auf dieser Seite für eine schnelle Schätzung.
Query-Parameter
Erforderliche Parameter sind country, start und delivery_business_days.
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE). |
start | date | Erforderlich. Startdatum YYYY-MM-DD. Das Startdatum wird als Tag 0 behandelt. |
delivery_business_days | integer | Erforderlich. Anzahl der Arbeitstage, die nach start addiert werden (0 liefert denselben Tag). |
region | string | Optional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu. |
weekdays | string | Optional. Kommagetrennte ISO-Wochentage 1-7 (Standard Mo-Fr). |
include | string | Optional. 1/true enthält ein holidays-Array für den Scan-Bereich. |
lang | string | Optional. Sprache für Feiertagsnamen bei include=1. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
Response: JSON-Objekt mit delivery_date und zugehörigen Kontextfeldern (country/region, weekdays und Scan-Bereich).
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/delivery-date?country=US&start=2026-01-02&delivery_business_days=3"Beispielantwort
{
"country_code": "US",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"start": "2026-01-02",
"delivery_business_days": 3,
"delivery_date": "2026-01-07"
}12. GET /api/bridge-days
Liefert „bridge day“-Möglichkeiten für ein country und year - kurze Folgen von Arbeitstagen zwischen arbeitsfreien Tagen, bei denen mindestens ein Nachbarblock einen Feiertag enthält. Jede Möglichkeit enthält den resultierenden zusammenhängenden Frei-Block und ein Effizienzverhältnis, damit du lange Wochenenden priorisieren kannst.
Ohne Code ausprobieren
Nutze den Brückentage-Rechner auf dieser Seite, um lange Wochenenden direkt im Browser zu planen.
Query-Parameter
Erforderliche Parameter sind country und year.
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Erforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE). |
year | integer | Erforderlich. Kalenderjahr innerhalb des rollierend erlaubten Fensters. |
month | integer | Optional. 1-12, um die Analyse auf einen einzelnen Monat zu begrenzen. |
region | string | Optional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu. |
weekdays | string | Optional. Kommagetrennte ISO-Wochentage 1-7 (Standard Mo-Fr). |
max_gap | integer | Optional. Maximale Brückenlänge in Arbeitstagen (1-3, Standard 1). Höhere Werte zeigen 2- und 3-Tage-Fälle wie einen Feiertag am Dienstag plus folgendes Wochenende. |
include | string | Optional. 1/true enthält ein holidays-Array für den abgefragten Bereich. |
lang | string | Optional. Sprache für Feiertagsnamen. Code aus GET /api/languages (z. B. de, pt-BR, en). Groß-/Kleinschreibung wird ignoriert; Bindestrich und Unterstrich sind gleichwertig. Nicht unterstützte Codes liefern englische Namen. Standard: en, wenn weggelassen. |
Response: JSON-Objekt mit einem bridge_opportunities-Array, nach Effizienz absteigend sortiert. Jede Möglichkeit zeigt die zu nehmenden Arbeitstage, den resultierenden zusammenhängenden Frei-Block, die Anzahl freier Tage, das Effizienzverhältnis (freie Tage / Brückentage) und die Anker-Feiertage.
Beispiele
Anfrage
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/bridge-days?country=DE&year=2026"Beispielantwort
{
"country_code": "DE",
"region": null,
"weekdays": [
1,
2,
3,
4,
5
],
"year": 2026,
"month": null,
"max_gap": 1,
"range": {
"from": "2026-01-01",
"to": "2026-12-31"
},
"bridge_opportunities": [
{
"bridge_days": [
"2026-05-15"
],
"bridge_days_count": 1,
"off_block": {
"from": "2026-05-14",
"to": "2026-05-17"
},
"off_days_count": 4,
"efficiency": 4,
"anchor_holidays": [
{
"uuid": "...",
"summary": "Christi Himmelfahrt",
"start_date": "2026-05-14",
"end_date": "2026-05-14"
}
]
}
]
}13. GET /api/languages
Liefert die Liste der von HolidayDB unterstützten Sprachcodes für übersetzte Feiertagsnamen. Dieser Endpunkt ist für Pläne verfügbar, die mehrere Sprachen enthalten (Full). Wenn dein Plan nur Englisch enthält, gibt die API `403` zurück.
Query-Parameter
Keine.
Antwort
JSON-Objekt mit einem languages-Array. Jeder Eintrag enthält einen code (z. B. en, de, pt_BR, en_US) und einen name. Diese Codes werden an lang übergeben; siehe lang-Parameter zur Auflösung und zum Fallback bei Primary-Tags.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.holidaydb.com/api/languages"{
"languages": [
{ "code": "en", "name": "English" },
{ "code": "de", "name": "German" }
]
}Die Rechnerseiten auf dieser Website verwenden einen öffentlichen Helper-Endpunkt GET /api/tools/languages, um Sprach-Dropdowns ohne API-Key zu befüllen.
14. Fehler
| Status | Bedeutung |
|---|---|
| 401 | Fehlender oder ungültiger API-Key. |
| 402 | Monatliches Kontingent des Free-Plans überschritten. Veraltete message / detail und legacy-Felder können noch zurückgegeben werden. |
| 403 | Untereinheiten-Filter oder Funktion ist in deinem Plan nicht enthalten (z. B. Pro/Full erforderlich), oder Token ohne api-Scope. |
| 404 | Land nicht gefunden bei GET /api/holidays, oder keine Feiertagsabdeckung bei Rechner-Endpunkten (enthält country_code, wenn bekannt). |
| 422 | Validierungsfehler: mindestens country/religion erforderlich (Query-Form), ungültiges type/scope, provisional, substitute oder include bei GET /api/holidays, ungültiger Datumsbereich, ungültiger Religions-Slug, ungültiges include bei GET /api/business-days (verwende 0, false, 1 oder true), ungültiges workday bei GET /api/working-hours oder ungültige business-days/working-hours-Felder (z. B. weekdays). Enthält ein errors-Objekt. |
| 500 | Kein aktiver Abo-Plan oder unerwarteter Serverfehler. Veraltete message / detail und legacy-Felder können noch zurückgegeben werden. |
Error-Response-Body
Error-Responses sind JSON auf der authentifizierten Produkt-API (GET /api/holidays, Rechner-Endpunkte usw.).
| Feld | Status | Beschreibung |
|---|---|---|
error | Pflicht | Lesbare Meldung. In neuen Integrationen dieses Feld verwenden. |
errors | Nur 422 | Objekt mit Feldnamen und Meldungs-Arrays (Validierungsfehler). |
country_code | Nur 404 | ISO-Ländercode, wenn keine Feiertagsabdeckung vorliegt (Rechner-Endpunkte). |
message | Veraltet | Gleicher Text wie error. Wird weiterhin aus Kompatibilität geliefert. |
detail | Veraltet | Gleicher Text wie error bei einigen 402- und 500-Antworten. Wird weiterhin aus Kompatibilität geliefert. |
id, status, title, code | Veraltet | Legacy-Felder bei einigen 402- und 500-Antworten (code z. B. E0, kein snake_case-Slug). |
Öffentliche /api/tools/*-Routen nutzen ein anderes Fehlerformat und sind hier nicht beschrieben.
Fehlender oder ungültiger API-Key.
{
"error": "Unauthorized. Provide a valid API key in the Authorization header as Bearer token."
}15. Planlimits
Der Parameter region (Untereinheiten-Feiertage) und der Parameter lang (mehrere Sprachen) erfordern Pro- oder Full-Pläne. Basic enthält nur nationale Feiertage auf Englisch. Siehe Preise oder deine Seiten Abrechnung und Nutzung für Details.
