GET /v1/add-business-days
Add or subtract business days from a starting date.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
date | string | Yes | Starting date in YYYY-MM-DD format. Must be within supported range. |
country | string | Yes | ISO 3166-1 alpha-2 country code. Case-insensitive. |
days | integer | Yes | Business days to add. Positive = forward, negative = backward, zero = no-op. Must be a base-10 integer within signed 32-bit range. |
region | string | No | ISO 3166-2 subdivision suffix. Requires paid plan. |
Request
curl -X GET "https://jday-api.jday.workers.dev/v1/add-business-days?date=2026-04-01&country=DE&days=10" \
-H "Authorization: Bearer jday_live_xxx" \
-H "Accept: application/json"Response
{
"start_date": "2026-04-01",
"business_days_added": 10,
"end_date": "2026-04-16",
"country": "DE",
"region": null,
"holidays_skipped": [
{
"date": "2026-04-03",
"official_date": null,
"name": "Good Friday",
"local_name": null,
"type": "public",
"date_accuracy": "exact"
},
{
"date": "2026-04-06",
"official_date": null,
"name": "Easter Monday",
"local_name": null,
"type": "public",
"date_accuracy": "exact"
}
],
"weekends_skipped": 4,
"calendar_days_elapsed": 15
}Response Fields
| Field | Type | Description |
|---|---|---|
start_date | string | The input date. |
business_days_added | integer | Echoes the signed input value. |
end_date | string | The computed result date. |
country | string | Normalized country code. |
region | string | null | Region code if provided, otherwise null. |
holidays_skipped | array | Holiday records on traversed non-weekend dates. Sorted chronologically. |
weekends_skipped | integer | Absolute count of traversed weekend dates. Always non-negative. |
calendar_days_elapsed | integer | Signed. Positive forward, negative backward, zero for days=0. |
Counting Rule
- The start date is never counted.
- Computation moves one calendar day at a time in the sign direction of
days. - Only business days count toward the target.
days = 0
Returns the input date unchanged:
holidays_skipped: []weekends_skipped: 0calendar_days_elapsed: 0
Overlap Rule
When a holiday falls on a weekend:
- The weekend date counts toward
weekends_skipped holidays_skippedincludes only holidays on traversed non-weekend dates- Multiple holidays on the same non-weekend date all appear in
holidays_skipped
days Validation
- Missing →
400 missing_parameter - Must be a base-10 integer string
- No decimals, no scientific notation
- Must fit signed 32-bit integer range
- Invalid →
400 invalid_days
Boundary Behavior
If the computed end_date would fall outside the supported range (2025-01-01 to 2027-12-31), the API returns 400 date_out_of_range before performing expensive traversal.
Error Cases
| Condition | Error |
|---|---|
Missing date, country, or days | 400 missing_parameter |
| Malformed date | 400 invalid_date |
| Invalid days value | 400 invalid_days |
| Date outside range | 400 date_out_of_range |
| Computed result outside range | 400 date_out_of_range |
| Unknown country | 400 invalid_country |
| Invalid region | 400 invalid_region |
| Region on Free plan | 403 plan_upgrade_required |