Accurate business-day, holiday, and scheduling math for major countries and their subdivisions — without maintaining a single holiday calendar yourself. Add or subtract working days, check if a date is a business day, find the next valid date, or count working days between two dates, with full support for regional subdivisions, custom weekends, and your own blackout dates. One simple GET call, instant JSON.
{"date":"2026-12-25","region":"US","is_business_day":false}
curl --location --request GET 'https://zylalabs.com/api/12996/business-day+api/26001/is+business+day?date=Required®ion=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{"start":"2026-07-02","days":5,"result":"2026-07-10"}
curl --location --request GET 'https://zylalabs.com/api/12996/business-day+api/26002/add+business+days?date=2026-07-02&days=5®ion=US' --header 'Authorization: Bearer YOUR_API_KEY'
{"from":"2026-07-02","result":"2026-07-06"}
curl --location --request GET 'https://zylalabs.com/api/12996/business-day+api/26003/next+business+day?date=2026-07-02®ion=US' --header 'Authorization: Bearer YOUR_API_KEY'
{"start":"2026-07-01","end":"2026-07-31","business_days":21}
curl --location --request GET 'https://zylalabs.com/api/12996/business-day+api/26004/business+days+between?start=2026-07-01&end=2026-07-31®ion=US' --header 'Authorization: Bearer YOUR_API_KEY'
Após se cadastrar, cada desenvolvedor recebe uma chave de acesso à API pessoal, uma combinação única de letras e dígitos para acessar nosso endpoint de API. Para autenticar com a Business-Day API basta incluir seu token Bearer no cabeçalho Authorization.
| Cabeçalho | Descrição |
|---|---|
Authorization
|
Obrigatório
Deve ser Bearer access_key. Veja "Sua chave de acesso à API" acima quando você estiver inscrito.
|
Sem compromisso de longo prazo. Faça upgrade, downgrade ou cancele a qualquer momento. O teste gratuito inclui até 50 requisições.
(Economize 2 meses com cobrança anual 🎉)
Date arithmetic looks trivial until you cross a border. "Five business days from today" means something different in California than in Bavaria, observed-holiday rules shift weekends around, some regions don't even use a Saturday/Sunday weekend, and every customer has their own closures on top of the public calendar. Getting this wrong quietly breaks SLA clocks, delivery estimates, payment settlement windows, and appointment scheduling.
This API handles all of it behind one endpoint. Public holidays for over 100 countries and their subdivisions (US states, German Länder, Canadian provinces, and more) are kept current for you. On top of that you get the things a raw calendar can't do on its own: working-day arithmetic, configurable weekend days for non-Mon–Fri regions, and per-request custom holidays so a customer's own office closures fold into the calculation.
Built for logistics and delivery-date estimation, fintech settlement and payment scheduling, SLA and ticket-aging clocks, payroll, and any appointment or booking system that has to respect real working days. Responses are small, cacheable JSON and return in milliseconds.
Highlights
All endpoints are GET. Dates are ISO YYYY-MM-DD. region is an ISO country code (e.g. US, GB, DE, CA). Optional params:
subdiv — state/province/region code (e.g. CA for California, BY for Bavaria)weekend — comma-separated weekday numbers, Monday=0 … Sunday=6. Default 5,6 (Sat/Sun). Example: 4,5 for a Friday/Saturday weekend.extra_holidays — comma-separated ISO dates to treat as non-working (a customer's own closures), merged with the public calendar.GET /v1/is-business-dayReturns whether a date is a working day (not a weekend, public holiday, or supplied blackout date).
| Param | Required | Example |
|---|---|---|
date |
yes | 2026-12-25 |
region |
yes | US |
subdiv |
no | CA |
weekend |
no | 5,6 |
extra_holidays |
no | 2026-12-24 |
Request:
GET /v1/is-business-day?date=2026-12-25®ion=US
Response:
{ "date": "2026-12-25", "region": "US", "is_business_day": false }
GET /v1/add-business-daysAdds (or subtracts, if days is negative) N working days to a date.
| Param | Required | Example |
|---|---|---|
date |
yes | 2026-07-02 |
days |
yes | 5 |
region |
yes | US |
subdiv |
no | CA |
weekend |
no | 5,6 |
extra_holidays |
no | 2026-07-06 |
Request:
GET /v1/add-business-days?date=2026-07-02&days=5®ion=US&subdiv=CA
Response:
{ "start": "2026-07-02", "days": 5, "result": "2026-07-10" }
(July 3 is the observed Independence Day holiday, plus two weekends, so five working days lands on July 10.)
GET /v1/next-business-dayReturns the first working day after a date. Pass inclusive=true to allow the date itself if it is already a working day.
| Param | Required | Example |
|---|---|---|
date |
yes | 2026-12-25 |
region |
yes | US |
inclusive |
no | false |
subdiv |
no | CA |
weekend |
no | 5,6 |
extra_holidays |
no | — |
Request:
GET /v1/next-business-day?date=2026-12-25®ion=US
Response:
{ "from": "2026-12-25", "result": "2026-12-28" }
GET /v1/business-days-betweenCounts working days in the half-open interval (start, end]. Negative if end precedes start.
| Param | Required | Example |
|---|---|---|
start |
yes | 2026-12-24 |
end |
yes | 2026-12-31 |
region |
yes | US |
subdiv |
no | CA |
weekend |
no | 5,6 |
extra_holidays |
no | — |
Request:
GET /v1/business-days-between?start=2026-12-24&end=2026-12-31®ion=US
Response:
{ "start": "2026-12-24", "end": "2026-12-31", "business_days": 4 }
400 — bad input (malformed date, out-of-range weekend, unsupported region). Body: { "detail": "" }401 — missing or invalid key (handled by the marketplace layer).429 — rate limit exceeded.These show the regional parameters actually changing the result — the most credible thing a browsing developer can see. All values verified against the live calendars.
Epiphany (Jan 6, 2026, a Tuesday) is a public holiday in Bavaria but a normal working day in Berlin:
GET /v1/is-business-day?date=2026-01-06®ion=DE&subdiv=BY
{ "date": "2026-01-06", "region": "DE", "is_business_day": false }
GET /v1/is-business-day?date=2026-01-06®ion=DE&subdiv=BE
{ "date": "2026-01-06", "region": "DE", "is_business_day": true }
The arithmetic reflects it too — adding one working day to Wed June 3 skips Corpus Christi (Thu June 4) in Bavaria, but not in Berlin:
GET /v1/add-business-days?date=2026-06-03&days=1®ion=DE&subdiv=BY
{ "start": "2026-06-03", "days": 1, "result": "2026-06-05" }
GET /v1/add-business-days?date=2026-06-03&days=1®ion=DE&subdiv=BE
{ "start": "2026-06-03", "days": 1, "result": "2026-06-04" }
Egypt with a Friday/Saturday weekend — one working day after Thursday March 5 lands on Sunday March 8, not Friday:
GET /v1/add-business-days?date=2026-03-05&days=1®ion=EG&weekend=4,5
{ "start": "2026-03-05", "days": 1, "result": "2026-03-08" }
GET /v1/next-business-day?date=2026-03-05®ion=EG&weekend=4,5
{ "from": "2026-03-05", "result": "2026-03-08" }
Counting working days under a Friday/Saturday weekend (Saudi Arabia, Mar 1–8):
GET /v1/business-days-between?start=2026-03-01&end=2026-03-08®ion=SA&weekend=4,5
{ "start": "2026-03-01", "end": "2026-03-08", "business_days": 5 }
July 3, 2026 is the observed US Independence Day holiday, but an ordinary working day in the UK:
GET /v1/is-business-day?date=2026-07-03®ion=US
{ "date": "2026-07-03", "region": "US", "is_business_day": false }
GET /v1/is-business-day?date=2026-07-03®ion=GB
{ "date": "2026-07-03", "region": "GB", "is_business_day": true }
Each endpoint returns JSON data that indicates business day status, calculated dates, or the number of working days. For example, the "Is Business Day" endpoint returns whether a specific date is a working day, while the "Add Business Days" endpoint provides the resulting date after adding or subtracting business days.
Key fields in the response include "date" (the input date), "region" (the specified region), "is_business_day" (boolean for business day status), "result" (calculated date), and "business_days" (count of working days between two dates).
Os parâmetros incluem "data" (obrigatório), "região" (obrigatório), "subdiv" (opcional para subdivisões), "fim de semana" (opcional para fins de semana personalizados), "dias" (obrigatório para adicionar/subtrair dias) e "feriados extras" (opcional para datas de bloqueio personalizadas)
The response data is structured in a JSON format with key-value pairs. Each endpoint's response contains relevant fields based on the request, such as "start," "end," and "result" for date calculations, allowing users to easily parse and utilize the information.
The data is sourced from official holiday calendars for over 100 countries and their subdivisions. The API maintains current holiday information to ensure accuracy, allowing users to rely on it for precise business day calculations.
Casos de uso típicos incluem logística e estimativa de data de entrega, agendamento de liquidações financeiras, rastreamento de SLA, processamento de folha de pagamento e agendamento de compromissos, onde cálculos precisos de dias úteis são cruciais para as operações
Users can customize requests by specifying parameters such as "subdiv" for regional subdivisions, "weekend" for non-standard weekends, and "extra_holidays" for custom closures, tailoring the calculations to their specific needs.
Users can utilize the returned data by interpreting the "is_business_day" field to determine scheduling feasibility, using "result" for planning future dates, and leveraging "business_days" for understanding timelines between events or deadlines.