Count

Count the business days between two dates

POST/v1/count/business_days

View as Markdown

Counts the days that are not weekend days or holidays you send. By default the start date is counted and the end date is not; both are options. The end date cannot be before the start date.

Request body

Name Type Required Description
weekend array of integer no ISO weekday numbers that are not business days: 1 is Monday, 7 is Sunday. Default Saturday and Sunday
holidays array of string no ISO dates that are not business days. Holidays are sent by the caller: no country calendar is built in
start_date string yes An ISO date or ISO date and time
end_date string yes An ISO date or ISO date and time, not before the start
include_start boolean no Count the start date when it is a business day (default true)
include_end boolean no Count the end date when it is a business day (default false)

Example request

A request body that works, as JSON.

{
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}

Code samples

Replace YOUR_TOKEN with your access token.

curl

curl -X POST 'https://api.skillfulsardine.com/v1/count/business_days' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}'

PowerShell

$body = @'
{
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}
'@
$response = Invoke-RestMethod -Method Post -Uri 'https://api.skillfulsardine.com/v1/count/business_days' `
  -Headers @{ Authorization = 'Bearer YOUR_TOKEN' } `
  -ContentType 'application/json; charset=utf-8' `
  -Body ([System.Text.Encoding]::UTF8.GetBytes($body))
$response | ConvertTo-Json -Depth 10

Python

import requests

payload = {
    "start_date": "2026-10-12",
    "end_date": "2026-10-16",
}

response = requests.post(
    "https://api.skillfulsardine.com/v1/count/business_days",
    headers={"Authorization": "Bearer YOUR_TOKEN"},
    json=payload,
    timeout=30,
)
print(response.json())

JavaScript

const response = await fetch("https://api.skillfulsardine.com/v1/count/business_days", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}),
});
const result = await response.json();
console.log(result);

Node

// Node 18 or later. Save as call.mjs and run: API_TOKEN=... node call.mjs
const token = process.env.API_TOKEN;

const response = await fetch("https://api.skillfulsardine.com/v1/count/business_days", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}),
});
const result = await response.json();
console.log(result);

Rust

// Cargo.toml: reqwest = { version = "0.12", features = ["blocking", "json"] }, serde_json = "1"
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let body: serde_json::Value = serde_json::from_str(r#"{
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}"#)?;
    let response = reqwest::blocking::Client::new()
        .post("https://api.skillfulsardine.com/v1/count/business_days")
        .bearer_auth("YOUR_TOKEN")
        .json(&body)
        .send()?;
    println!("{}", response.text()?);
    Ok(())
}

Swift

import Foundation

var request = URLRequest(url: URL(string: "https://api.skillfulsardine.com/v1/count/business_days")!)
request.httpMethod = "POST"
request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(#"""
{
  "start_date": "2026-10-12",
  "end_date": "2026-10-16"
}
"""#.utf8)

let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))

Response

The fields inside data of a successful response.

Name Type Required Description
business_days integer yes Business days in the range
calendar_days integer yes Calendar days from the start date to the end date

Example response

A real answer from the operation, as JSON. The fields in the table above are inside data.

{
  "data": {
    "business_days": 4,
    "calendar_days": 4
  },
  "errors": null,
  "meta": {
    "request_id": "ead34b91-5777-440e-8c07-d7485fa0f9fe",
    "timestamp": "2026-10-27T07:19:42.161447Z",
    "version": "2026-03-26"
  },
  "pagination": null
}

Responses

Status When it happens
200 Successful Response
400 The body respects the operation schema, but the use case rejected it. Each problem is one ApiError entry
413 The request is larger than the request size limit of the API allows
422 The body does not respect the operation schema. Each problem is one ApiError entry with the code validation_error
500 Something failed inside the server and was not an input problem. The same envelope, errors may be empty