{"openapi":"3.1.0","info":{"title":"Business Day Calendars (x402)","version":"1.0.0","description":"Business-day arithmetic on settlement calendars: NYSE (with early closes), Federal Reserve (Fedwire/FedACH), TARGET2 (EUR) and UK (England & Wales) bank holidays. Add or subtract business days, count business days between dates, roll dates with modified-following, compute T+N settlement dates across several calendars, and list holidays for 2000-2099. Made by Quietwork Labs; operated by an autonomous AI agent (see https://business-days.quietworklabs.workers.dev/about).","contact":{"email":"quietworklabs@outlook.com"},"x-guidance":"All dates YYYY-MM-DD. calendars= takes XNYS, FED, TARGET2, UK-ENG (comma list = joint calendar). GET /v1/is-business-day?date=, /v1/add-business-days?date=&days= (negative ok), /v1/settlement-date?trade_date=&t=1, /v1/business-days-between?start=&end=, /v1/adjust?date=&convention=modified_following, /v1/holidays?calendar=&year=. Rules computed deterministically and checked against NYSE, Federal Reserve and GOV.UK published calendars."},"servers":[{"url":"https://business-days.quietworklabs.workers.dev"}],"x-discovery":{"ownershipProofs":["0xb40887671bd8f0866910147ad0c3e0bb4bd8cb257567c0ea61d47b333d27d83418419d13cab0421500fc24a73eaf8d9a123d88d3a3966f612eb9821fbe1983c91b"]},"paths":{"/v1/is-business-day":{"get":{"operationId":"is_business_day","summary":"Is a date a business day on the given calendars","description":"Whether a date is a business day on one or more settlement calendars (NYSE, Fedwire/FedACH, TARGET2, UK), which holiday closes it, NYSE early closes, and the previous/next business day. Deterministic, no AI.","tags":["Business Day Calendars"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"date","required":true,"description":"Date YYYY-MM-DD","schema":{"type":"string","example":"2026-11-27"}},{"in":"query","name":"calendars","required":false,"description":"Comma list of calendars; a day is a business day only if open in all. XNYS (NYSE), FED (Fedwire/FedACH), TARGET2 (EUR), UK-ENG. Aliases: NYSE, US, ACH, EUR, UK. Default FED.","schema":{"type":"string","example":"XNYS,FED"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"date":"2026-11-27","calendars":[{"id":"XNYS","name":"NYSE"}],"isBusinessDay":true,"dayOfWeek":"Friday","closedBy":[],"earlyClose":[{"calendar":"XNYS","name":"Day after Thanksgiving","closeTime":"13:00 America/New_York"}],"previousBusinessDay":"2026-11-25","nextBusinessDay":"2026-11-30"}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment Required (x402)"}}}},"/v1/add-business-days":{"get":{"operationId":"add_business_days","summary":"Add or subtract N business days","description":"Adds (or with negative days subtracts) N business days to a date on a joint calendar (NYSE, Fedwire/FedACH, TARGET2, UK) and lists the holidays skipped. Deterministic, no AI.","tags":["Business Day Calendars"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"date","required":true,"description":"Start date YYYY-MM-DD","schema":{"type":"string","example":"2026-12-23"}},{"in":"query","name":"days","required":true,"description":"Business days to add, -2000..2000","schema":{"type":"string","example":"2"}},{"in":"query","name":"calendars","required":false,"description":"Comma list of calendars; a day is a business day only if open in all. XNYS (NYSE), FED (Fedwire/FedACH), TARGET2 (EUR), UK-ENG. Aliases: NYSE, US, ACH, EUR, UK. Default FED.","schema":{"type":"string","example":"XNYS,FED"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"date":"2026-12-23","days":2,"calendars":[{"id":"XNYS","name":"NYSE"},{"id":"FED","name":"Federal Reserve (Fedwire/FedACH)"}],"result":"2026-12-28","resultDayOfWeek":"Monday","skippedHolidays":[{"date":"2026-12-25","reason":"XNYS: Christmas Day; FED: Christmas Day"}]}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment Required (x402)"}}}},"/v1/settlement-date":{"get":{"operationId":"settlement_date","summary":"T+N settlement date for a trade date","description":"Settlement date T+N for a trade date on a joint calendar. Default XNYS,FED with t=1 (US equities since 28 May 2024). If the trade date is not a business day it is first rolled to the next one. Deterministic, no AI.","tags":["Business Day Calendars"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"trade_date","required":true,"description":"Trade date YYYY-MM-DD","schema":{"type":"string","example":"2026-12-24"}},{"in":"query","name":"t","required":false,"description":"Settlement lag in business days (0-10). Default 1","schema":{"type":"string","example":"1"}},{"in":"query","name":"calendars","required":false,"description":"Calendars; default XNYS,FED","schema":{"type":"string","example":"XNYS,FED"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"trade_date":"2026-12-24","t":1,"calendars":[{"id":"XNYS"},{"id":"FED"}],"effectiveTradeDate":"2026-12-24","settlementDate":"2026-12-28","skippedHolidays":[{"date":"2026-12-25","reason":"XNYS: Christmas Day; FED: Christmas Day"}]}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment Required (x402)"}}}},"/v1/business-days-between":{"get":{"operationId":"business_days_between","summary":"Count business days between two dates","description":"Counts business days between two dates on a joint calendar: days after start up to and including end (inclusive=true also counts start). Negative if end is before start. Lists weekday holidays in range. Max 10 years. Deterministic, no AI.","tags":["Business Day Calendars"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"start","required":true,"description":"Start date YYYY-MM-DD","schema":{"type":"string","example":"2026-01-01"}},{"in":"query","name":"end","required":true,"description":"End date YYYY-MM-DD","schema":{"type":"string","example":"2026-12-31"}},{"in":"query","name":"inclusive","required":false,"description":"true to count the start date too","schema":{"type":"string","example":"false"}},{"in":"query","name":"calendars","required":false,"description":"Comma list of calendars; a day is a business day only if open in all. XNYS (NYSE), FED (Fedwire/FedACH), TARGET2 (EUR), UK-ENG. Aliases: NYSE, US, ACH, EUR, UK. Default FED.","schema":{"type":"string","example":"XNYS,FED"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"start":"2026-01-01","end":"2026-12-31","inclusive":false,"calendars":[{"id":"FED","name":"Federal Reserve (Fedwire/FedACH)"}],"businessDays":251,"holidaysInRange":["2026-01-19","2026-02-16"]}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment Required (x402)"}}}},"/v1/adjust":{"get":{"operationId":"adjust_date","summary":"Roll a date to a business day (modified following etc.)","description":"Rolls a date that falls on a weekend or holiday using a business-day convention: following, modified_following, preceding, modified_preceding. Typical for payment, coupon and invoice due dates. Deterministic, no AI.","tags":["Business Day Calendars"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"date","required":true,"description":"Date YYYY-MM-DD","schema":{"type":"string","example":"2027-12-25"}},{"in":"query","name":"convention","required":false,"description":"following | modified_following | preceding | modified_preceding. Default modified_following","schema":{"type":"string","example":"modified_following"}},{"in":"query","name":"calendars","required":false,"description":"Comma list of calendars; a day is a business day only if open in all. XNYS (NYSE), FED (Fedwire/FedACH), TARGET2 (EUR), UK-ENG. Aliases: NYSE, US, ACH, EUR, UK. Default FED.","schema":{"type":"string","example":"TARGET2"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"date":"2027-12-25","convention":"modified_following","calendars":[{"id":"TARGET2","name":"TARGET2 / T2 (EUR)"}],"adjusted":"2027-12-27","changed":true}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment Required (x402)"}}}},"/v1/holidays":{"get":{"operationId":"list_holidays","summary":"Holidays (and NYSE early closes) for a calendar and year","description":"Lists closing days for one calendar and year (2000-2099): NYSE full closures and 1 pm early closes, Federal Reserve (Fedwire/FedACH) holidays with Saturday/Sunday observance rules, TARGET2 closing days, UK England & Wales bank holidays with substitute days. Weekend-only holidays with no weekday closure are omitted. Deterministic, no AI.","tags":["Business Day Calendars"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"calendar","required":true,"description":"XNYS, FED, TARGET2 or UK-ENG","schema":{"type":"string","example":"XNYS"}},{"in":"query","name":"year","required":true,"description":"Year 2000-2099","schema":{"type":"string","example":"2027"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"calendar":"XNYS","year":2027,"holidays":[{"date":"2027-01-01","name":"New Year's Day","type":"closed"},{"date":"2027-11-26","name":"Day after Thanksgiving","type":"early_close","closeTime":"13:00 America/New_York"}],"source":"https://www.nyse.com/markets/hours-calendars"}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment Required (x402)"}}}},"/health":{"get":{"operationId":"health","summary":"Health check","security":[],"responses":{"200":{"description":"OK"}}}}}}