Api Endpoint

Business Days Calculator

Business days calculator with a caller-supplied calendar: add or subtract N working days from a date, or count the working days between two dates. The weekend is a weekday mask (Friday-Saturday and Sunday-only weeks work) and holidays are an explicit date list, so nothing depends on a stale holiday table. Returns the result date, the day count and the skipped dates with reasons. The skipped list is capped at 1,000 entries (skipped_truncated flags it); skipped_total is always exact.

Open interactive test console

Offering

Provider
api.duoleads.com
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
General Utilities
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://api.duoleads.com/v1/time/business-days
MIME type
application/json
First seen
2026-10-16T01:50:38.788Z
Last seen
Tags
business-days, working-days, workday-calculator, calendar, Time

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.05 USDC
Atomic price: 50000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "50000",
    "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39"
  }
]

Observed health

Status
Healthy
Latest latency
43 ms
Average latency
813 ms
HTTP status
402
Last checked
Reachability
100% over 13 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "op": {
          "type": "string",
          "description": "add (default) N business days to from, or count business days between from and to.",
          "enum": [
            "add",
            "count"
          ],
          "maxLength": 64,
          "default": "add"
        },
        "from": {
          "type": "string",
          "description": "Start date, YYYY-MM-DD.",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "maxLength": 32
        },
        "days": {
          "type": "string",
          "description": "Business days to add, -3650 to 3650. Required when op=add.",
          "pattern": "^[+-]?\\d+$",
          "maxLength": 64
        },
        "to": {
          "type": "string",
          "description": "End date YYYY-MM-DD, may precede from. Required when op=count.",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "maxLength": 32
        },
        "weekend": {
          "type": "string",
          "description": "Comma-separated weekday names or ISO numbers. Default sat,sun. Empty string = no weekend.",
          "maxLength": 64,
          "default": "sat,sun"
        },
        "holidays": {
          "type": "string",
          "description": "Comma-separated YYYY-MM-DD holiday dates.",
          "maxLength": 2048
        },
        "inclusive": {
          "type": "string",
          "description": "For op=count: start (default, half-open [from, to)), both or neither.",
          "enum": [
            "start",
            "both",
            "neither"
          ],
          "maxLength": 64,
          "default": "start"
        }
      },
      "required": [
        "from"
      ]
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "days": {
              "description": "Business days to add, -3650 to 3650. Required when op=add.",
              "maxLength": 64,
              "pattern": "^[+-]?\\d+$",
              "type": "string"
            },
            "from": {
              "description": "Start date, YYYY-MM-DD.",
              "maxLength": 32,
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
              "type": "string"
            },
            "holidays": {
              "description": "Comma-separated YYYY-MM-DD holiday dates.",
              "maxLength": 2048,
              "type": "string"
            },
            "inclusive": {
              "default": "start",
              "description": "For op=count: start (default, half-open [from, to)), both or neither.",
              "enum": [
                "start",
                "both",
                "neither"
              ],
              "maxLength": 64,
              "type": "string"
            },
            "op": {
              "default": "add",
              "description": "add (default) N business days to from, or count business days between from and to.",
              "enum": [
                "add",
                "count"
              ],
              "maxLength": 64,
              "type": "string"
            },
            "to": {
              "description": "End date YYYY-MM-DD, may precede from. Required when op=count.",
              "maxLength": 32,
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
              "type": "string"
            },
            "weekend": {
              "default": "sat,sun",
              "description": "Comma-separated weekday names or ISO numbers. Default sat,sun. Empty string = no weekend.",
              "maxLength": 64,
              "type": "string"
            }
          },
          "required": [
            "from"
          ],
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "data": {
              "properties": {
                "business_days": {
                  "type": "integer"
                },
                "calendar_days": {
                  "type": "integer"
                },
                "calendar_days_spanned": {
                  "type": "integer"
                },
                "days": {
                  "type": "integer"
                },
                "direction": {
                  "type": "string"
                },
                "from": {
                  "type": "string"
                },
                "holiday_days": {
                  "type": "integer"
                },
                "holidays_matched": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "result": {
                  "type": "string"
                },
                "skipped": {
                  "items": {
                    "properties": {
                      "date": {
                        "type": "string"
                      },
                      "reason": {
                        "type": "string"
                      },
                      "weekday": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "date",
                      "reason",
                      "weekday"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "skipped_total": {
                  "type": "integer"
                },
                "skipped_truncated": {
                  "type": "boolean"
                },
                "weekend_days": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "meta": {
              "properties": {
                "computed_at": {
                  "description": "RFC 3339 UTC with milliseconds",
                  "type": "string"
                },
                "deterministic": {
                  "type": "boolean"
                },
                "disclaimer": {
                  "type": "string"
                },
                "price_usd": {
                  "type": "string"
                },
                "request_id": {
                  "type": "string"
                },
                "sources": {
                  "items": {
                    "required": [
                      "id",
                      "version",
                      "published"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "request_id",
                "computed_at",
                "price_usd",
                "deterministic",
                "disclaimer"
              ],
              "type": "object"
            },
            "ok": {
              "const": true
            },
            "route": {
              "const": "/v1/time/business-days"
            },
            "version": {
              "type": "string"
            }
          },
          "required": [
            "ok",
            "route",
            "version",
            "data",
            "meta"
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}