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

ParameterTypBeschreibung
countrystringDurch Kommas getrennte 2-stellige ISO-Ländercodes (z. B. US, DE, FR).
religionstringDurch Kommas getrennte Religions-Slugs (z. B. christian, islamic).
regionstringUntereinheiten-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).
fromdateStartdatum (YYYY-MM-DD).
todateEnddatum (YYYY-MM-DD).
langstringSprache 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).
provisionaltrue | falseFilter nach vorläufigen (true) oder bestätigten (false) Daten.
substitutetrue | falseFilter für Ersatz-/beobachtete Tage: true (nur Ersatz), false (ausschließen) oder weglassen (beides).
includestringOptional. 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).
typestringpublic_holiday oder observance; für mehrere Werte kommagetrennt.
scopestringnational 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=...&region=... (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

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. KE, NG).
regionstringOptional. 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.
yearintegerErforderlich 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.
monthintegerOptional im Kalendermodus. Monat 1-12; weglassen für das volle Kalenderjahr (1. Januar bis 31. Dezember). Nicht mit from/to senden.
fromdateRange-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.
todateRange-Modus: Enddatum YYYY-MM-DD, inklusive. Muss auf oder nach from liegen. Zusammen mit from maximal 731 inklusive Kalendertage.
weekdaysstringOptional. 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.
langstringOptional. 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.
includestringOptional. 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

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. KE, NG).
regionstringOptional. ISO-3166-2-Untereinheit (z. B. US-CA oder CA mit country=US). Gleiche Regeln und Planlimits wie bei business-days.
yearintegerErforderlich im Kalendermodus. Gleiche rollierende Fensterregeln wie bei business-days. Nicht mit from/to senden.
monthintegerOptional im Kalendermodus. Monat 1-12; weglassen für das volle Kalenderjahr. Nicht mit from/to senden.
fromdateRange-Modus: Startdatum YYYY-MM-DD, inklusive. Nur mit to verwenden (ohne year/month). Gleiche Maximalspann-Regeln wie bei business-days.
todateRange-Modus: Enddatum YYYY-MM-DD, inklusive. Muss auf oder nach from liegen.
weekdaysstringOptional. Wie bei business-days: kommagetrennte ISO-Wochentage 1-7. Standard Mo-Fr.
langstringOptional. 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.
includestringOptional. Wie bei business-days: 1/true enthält ein holidays-Array; weglassen/leer/0/false lässt es weg.
workdaystringErforderlich. 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

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, KE).
regionstringOptional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu.
weekdaysstringOptional. Kommagetrennte ISO-Wochentage 1-7. Standard ist Mo-Fr (1,2,3,4,5).
langstringOptional. 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.
salarystringErforderlich. Dezimalbetrag als String (z. B. 5000, 5000.00, 1234.5).
salary_scaleintegerOptional. Dezimalstellen zur Normalisierung von salary (0-6). Standard: 2.
yearintegerKalendermodus. Erforderlich bei month oder wenn period_from/period_to weggelassen werden. Gleiche rollierende Jahresfensterregeln wie bei business-days.
monthintegerKalendermodus. Optional 1-12; weglassen für einen ganzjährigen Abrechnungszeitraum. Nicht mit period_from/period_to kombinieren.
period_fromdateExpliziter Zeitraum-Modus. Startdatum des Abrechnungszeitraums YYYY-MM-DD, inklusive. Muss zusammen mit period_to verwendet werden. Nicht mit year/month kombinieren.
period_todateExpliziter Zeitraum-Modus. Enddatum des Abrechnungszeitraums YYYY-MM-DD, inklusive. Muss auf oder nach period_from liegen.
fromdateOptionaler Start des Prorationsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Abrechnungszeitraums liegen. Mit to verwenden.
todateOptionales Ende des Prorationsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Abrechnungszeitraums liegen.
includestringOptional. 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

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE).
regionstringOptional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu.
weekdaysstringOptional. Kommagetrennte ISO-Wochentage 1-7. Standard ist Mo-Fr (1,2,3,4,5).
workdaystringErforderlich. Arbeitstagsdauer im Format H:MM oder HH:MM (z. B. 08:00, 7:30). Wird zur Berechnung von Stunden und abgeleiteten Tagen verwendet.
langstringOptional. 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.
includestringOptional. 1/true enthält ein holidays-Array (für das Urlaubsfenster, wenn angegeben, sonst für den gesamten Berichtszeitraum).
yearintegerKalendermodus. Erforderlich bei month oder wenn period_from/period_to weggelassen werden.
monthintegerKalendermodus. Optional 1-12; weglassen für einen ganzjährigen Berichtszeitraum. Nicht mit period_from/period_to kombinieren.
period_fromdateExpliziter Zeitraum-Modus. Start des Berichtszeitraums YYYY-MM-DD, inklusive. Muss zusammen mit period_to verwendet werden. Nicht mit year/month kombinieren.
period_todateExpliziter Zeitraum-Modus. Ende des Berichtszeitraums YYYY-MM-DD, inklusive. Muss auf oder nach period_from liegen.
fromdateOptionaler Start des Urlaubsfensters YYYY-MM-DD, inklusive. Muss innerhalb des Berichtszeitraums liegen. Mit to verwenden.
todateOptionales 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_overridestringOptional. Überschreibt die berechnete genommene Zeit für das Urlaubsfenster (Dezimalstunden-String, z. B. 7.5).
carryover_hoursstringOptional. Anfangssaldo (kann negativ sein) als Dezimalstunden-String.
accrual_rate_hours_per_workdaystringOptional. Ansammlungsrate pro Arbeitstag (Dezimalstunden). Gegenseitig exklusiv mit accrual_hours_per_month / accrual_hours_per_year.
accrual_hours_per_monthstringOptional. Ansammlungsbetrag für einen vollen Kalendermonat (Dezimalstunden). Erfordert, dass der Berichtszeitraum ein voller Kalendermonat ist (year+month verwenden).
accrual_hours_per_yearstringOptional. Ansammlungsbetrag für ein volles Kalenderjahr (Dezimalstunden). Erfordert, dass der Berichtszeitraum ein volles Kalenderjahr ist (year ohne month verwenden).
accrual_cap_hoursstringOptional. 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.

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE).
startdateErforderlich. Startdatum YYYY-MM-DD. Das Startdatum wird als Tag 0 behandelt.
sla_business_daysintegerErforderlich. Anzahl der Arbeitstage, die nach start addiert werden (0 liefert denselben Tag).
regionstringOptional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu.
weekdaysstringOptional. Kommagetrennte ISO-Wochentage 1-7 (Standard Mo-Fr).
includestringOptional. 1/true enthält ein holidays-Array für den Scan-Bereich.
langstringOptional. 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.

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE).
startdateErforderlich. Startdatum YYYY-MM-DD. Das Startdatum wird als Tag 0 behandelt.
delivery_business_daysintegerErforderlich. Anzahl der Arbeitstage, die nach start addiert werden (0 liefert denselben Tag).
regionstringOptional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu.
weekdaysstringOptional. Kommagetrennte ISO-Wochentage 1-7 (Standard Mo-Fr).
includestringOptional. 1/true enthält ein holidays-Array für den Scan-Bereich.
langstringOptional. 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.

ParameterTypBeschreibung
countrystringErforderlich. Zweistelliger ISO-3166-1-Alpha-2-Ländercode (z. B. US, DE).
yearintegerErforderlich. Kalenderjahr innerhalb des rollierend erlaubten Fensters.
monthintegerOptional. 1-12, um die Analyse auf einen einzelnen Monat zu begrenzen.
regionstringOptional. ISO-3166-2-Untereinheit (Pro/Full). Fügt subnationale Feiertage zu nationalen Regeln hinzu.
weekdaysstringOptional. Kommagetrennte ISO-Wochentage 1-7 (Standard Mo-Fr).
max_gapintegerOptional. 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.
includestringOptional. 1/true enthält ein holidays-Array für den abgefragten Bereich.
langstringOptional. 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

StatusBedeutung
401Fehlender oder ungültiger API-Key.
402Monatliches Kontingent des Free-Plans überschritten. Veraltete message / detail und legacy-Felder können noch zurückgegeben werden.
403Untereinheiten-Filter oder Funktion ist in deinem Plan nicht enthalten (z. B. Pro/Full erforderlich), oder Token ohne api-Scope.
404Land nicht gefunden bei GET /api/holidays, oder keine Feiertagsabdeckung bei Rechner-Endpunkten (enthält country_code, wenn bekannt).
422Validierungsfehler: 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.
500Kein 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.).

FeldStatusBeschreibung
errorPflichtLesbare Meldung. In neuen Integrationen dieses Feld verwenden.
errorsNur 422Objekt mit Feldnamen und Meldungs-Arrays (Validierungsfehler).
country_codeNur 404ISO-Ländercode, wenn keine Feiertagsabdeckung vorliegt (Rechner-Endpunkte).
messageVeraltetGleicher Text wie error. Wird weiterhin aus Kompatibilität geliefert.
detailVeraltetGleicher Text wie error bei einigen 402- und 500-Antworten. Wird weiterhin aus Kompatibilität geliefert.
id, status, title, codeVeraltetLegacy-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.