---
title: Calculate Business Days Across Countries and Markets
slug: calculate-business-days-across-countries-markets-api
url: https://apyhub.com/callable-labs/service/calculate-business-days-across-countries-markets-api
provider: Callable Labs
tags: [business-days, working-days, date-calculator, holidays, deadlines]
auth: api_key
version: v1
service_type: sync
endpoints: 3
atoms: 5
mcp: true
---

# Calculate Business Days Across Countries and Markets

Add or subtract business days, count working days between dates and find the next business day for 250 countries and 28 exchanges. Holidays are skipped.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| GET | `https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/add` | What it does Adds business days to a start date, or subtracts them when days is negative, and retur… | 5 |
| GET | `https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/count` | What it does Counts the business days from start to end, both included, for ranges of up to ten yea… | 5 |
| GET | `https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/next` | What it does Returns the first business day after date, or before it when direction=previous. The r… | 5 |

## Endpoint reference

### Add or Subtract Business Days

`GET https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/add` · 5 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `days` | query | integer | yes | Business days to add; negative subtracts (±2500) Default: `3`. Example: `10`. |
| `start` | query | string (date) | no | ISO date; default today (UTC) Example: `2026-12-23`. |
| `market` | query | string | no | Exchange MIC or acronym, e.g. `XNYS` or `NYSE`. Give exactly one of `market` or `country`. Example: `XNYS`. |
| `country` | query | string | no | ISO 3166-1 alpha-2 or alpha-3 code, e.g. `US` or `DEU`. Give exactly one of `market` or `country`. Example: `US`. |
| `exclude` | query | string | no | Extra closed dates, comma-separated ISO dates (at most 366), e.g. company shutdown days |
| `weekend` | query | string | no | Override the weekend: weekday names or abbreviations such as `sat,sun` or `fri,sat`, or `none`. Default: the calendar's own. |
| `categories` | query | string | no | Comma-separated holiday categories, e.g. `public,bank`. Default: the calendar's main category (usually `public`). |
| `subdivision` | query | string | no | Subdivision code or name, e.g. `CA`, `BY` or `Bayern` (names as the calendar knows them) |

#### Quickstart

Add 3 business days to 23 December 2026 in Germany, skipping weekends and public holidays.

```bash
curl -X GET "https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/add?days=3&start=2026-12-23&country=DE" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with the resulting `date`, the `start` date and `days` used, the number of `calendar_days` between them, and `skipped_holidays`, the holidays and closures that were passed over. It also echoes the calendar settings: `country`, `market`, `subdivision`, `weekend`, `categories`, `language` and `calendar_version`.

```json
{
  "start": "2026-12-23",
  "days": 3,
  "date": "2026-12-29",
  "calendar_days": 6,
  "country": "DE",
  "market": null,
  "subdivision": null,
  "weekend": ["saturday", "sunday"],
  "categories": ["public"],
  "language": "en",
  "calendar_version": "2026.10",
  "skipped_holidays": [
    { "date": "2026-12-25", "reason": "holiday", "names": ["Christmas Day"] }
  ]
}
```

### Count Business Days Between Dates

`GET https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/count` · 5 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `end` | query | string (date) | yes | Last day, included Default: `2026-12-31`. Example: `2026-12-31`. |
| `start` | query | string (date) | yes | First day, included Default: `2026-01-01`. Example: `2026-12-01`. |
| `market` | query | string | no | Exchange MIC or acronym, e.g. `XNYS` or `NYSE`. Give `country` or `market`. Default: `XNYS`. |
| `country` | query | string | no | ISO 3166-1 alpha-2 or alpha-3 code, e.g. `US` or `DEU`. Give `country` or `market`. |
| `exclude` | query | string | no | Extra closed dates, comma-separated ISO dates (at most 366), e.g. company shutdown days |
| `weekend` | query | string | no | Override the weekend: weekday names or abbreviations such as `sat,sun` or `fri,sat`, or `none`. Default: the calendar's own. |
| `categories` | query | string | no | Comma-separated holiday categories, e.g. `public,bank`. Default: the calendar's main category (usually `public`). |
| `subdivision` | query | string | no | Subdivision code or name, e.g. `CA`, `BY` or `Bayern` (names as the calendar knows them) |

#### Quickstart

Count the business days in 2026 on the New York Stock Exchange calendar.

```bash
curl -X GET "https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/count?start=2026-01-01&end=2026-12-31&market=XNYS" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `business_days`, `calendar_days` and `weekend_days` for the range (both ends included), and `holidays`, the holidays and closures that fell on working weekdays. It also echoes the calendar settings used. Only the first holidays are shown here.

```json
{
  "start": "2026-01-01",
  "end": "2026-12-31",
  "business_days": 251,
  "calendar_days": 365,
  "weekend_days": 104,
  "weekend": ["saturday", "sunday"],
  "market": "XNYS",
  "country": null,
  "subdivision": null,
  "categories": ["public"],
  "language": "en",
  "calendar_version": "2026.10",
  "holidays": [
    { "date": "2026-01-01", "reason": "holiday", "names": ["New Year's Day"] },
    { "date": "2026-01-19", "reason": "holiday", "names": ["Martin Luther King Jr. Day"] }
  ]
}
```

### Find Next or Previous Business Day

`GET https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/next` · 5 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `date` | query | string (date) | no | ISO date; default today (UTC) Example: `2026-12-24`. |
| `market` | query | string | no | Exchange MIC or acronym, e.g. `XNYS` or `NYSE`. Give exactly one of `market` or `country`. Example: `XNYS`. |
| `country` | query | string | no | ISO 3166-1 alpha-2 or alpha-3 code, e.g. `US` or `DEU`. Give exactly one of `market` or `country`. Example: `US`. |
| `exclude` | query | string | no | Extra closed dates, comma-separated ISO dates (at most 366), e.g. company shutdown days |
| `weekend` | query | string | no | Override the weekend: weekday names or abbreviations such as `sat,sun` or `fri,sat`, or `none`. Default: the calendar's own. |
| `direction` | query | string | no | Search forwards or backwards One of: next, previous. Default: `next`. |
| `categories` | query | string | no | Comma-separated holiday categories, e.g. `public,bank`. Default: the calendar's main category (usually `public`). |
| `subdivision` | query | string | no | Subdivision code or name, e.g. `CA`, `BY` or `Bayern` (names as the calendar knows them) |
| `include_date` | query | boolean | no | Return `date` itself when it is a business day Default: `false`. |

#### Quickstart

Find the first business day after Christmas Day 2026 in the United States.

```bash
curl -X GET "https://api.eu.apyhub.com/callable-labs/calculate-business-days-across-countries-markets-api/v1/business-days/next?date=2026-12-25&country=US" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with the `result` date, the `date` the search started from and the `direction` used. `skipped` lists every day passed over with the reason. It also echoes the calendar settings used.

```json
{
  "date": "2026-12-25",
  "direction": "next",
  "result": "2026-12-28",
  "skipped": [
    { "date": "2026-12-26", "reason": "weekend" },
    { "date": "2026-12-27", "reason": "weekend" }
  ],
  "country": "US",
  "market": null,
  "subdivision": null,
  "categories": ["public"],
  "language": "en",
  "calendar_version": "2026.10"
}
```

## About

## What it does
Business Days Calculator works out working-day dates for 250 countries and territories and 28 stock exchange calendars. Add or subtract business days from a start date, count the business days between two dates, or find the next or previous business day, and see which holidays and closures were skipped.

Choose a calendar with `country` (an ISO code such as `US` or `DEU`) or `market` (an exchange code such as `XNYS`), and narrow it with `subdivision`. Add your own closed dates with `exclude` (up to 366 dates), choose which holiday `categories` count, or override the weekend with `weekend`, for example `fri,sat`.

Every response lists the skipped holidays with the reason, so a result is easy to explain to your users. Dates use `YYYY-MM-DD` and default to today in UTC. Add and subtract accept up to 2,500 business days, and counting works for ranges of up to ten years.

Use it for delivery and SLA deadlines, payroll and invoice due dates, settlement dates, and project plans that must respect local holidays.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/callable-labs/service/calculate-business-days-across-countries-markets-api
