Catalog/sched-coverage-gaps

Scheduling

Coverage gap finder API

Finds coverage gaps in a schedule via a sweep line, reporting every interval where overlapping shifts fall below the required minimum, total uncovered minutes, and peak coverage. Answers 'When is no one covering?', 'Where does coverage drop below the required level?'.

Price$0.03per request
MethodPOST
Route/v1/scheduling/coverage-gaps
StatusLive
MIME typeapplication/json
Rate limit120/minute
Cache0s public
schedulingshiftscoveragegapsrotasweep-linestaffingagents
API URLhttps://x402.hexl.dev/v1/scheduling/coverage-gaps
Integration docs
Example request
{
  "windowStart": "2026-06-04T00:00:00Z",
  "windowEnd": "2026-06-04T12:00:00Z",
  "shifts": [
    {
      "id": "s1",
      "start": "2026-06-04T00:00:00Z",
      "end": "2026-06-04T08:00:00Z"
    },
    {
      "id": "s2",
      "start": "2026-06-04T10:00:00Z",
      "end": "2026-06-04T12:00:00Z"
    }
  ]
}
Example response
{
  "minCoverage": 1,
  "gaps": [
    {
      "start": "2026-06-04T08:00:00.000Z",
      "end": "2026-06-04T10:00:00.000Z",
      "coverage": 0,
      "minutes": 120
    }
  ],
  "gapCount": 1,
  "uncoveredMinutes": 120,
  "peakCoverage": 1,
  "fullyCovered": false,
  "interpretation": "1 gap(s) below 1× coverage; 2h uncovered."
}
Input schema
{
  "type": "object",
  "required": [
    "windowStart",
    "windowEnd",
    "shifts"
  ],
  "properties": {
    "windowStart": {
      "type": "string",
      "examples": [
        "2026-06-04T00:00:00Z"
      ]
    },
    "windowEnd": {
      "type": "string",
      "examples": [
        "2026-06-04T12:00:00Z"
      ]
    },
    "shifts": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "minCoverage": {
      "type": "number",
      "examples": [
        1
      ]
    }
  }
}
Output schema
{
  "type": "object",
  "additionalProperties": true
}