Slatis Public API v1 is open for beta testers Register on the waitlist →
Slatis

Capacity

Query team workload, utilization metrics, and member availability for scheduling and routing decisions.

Query capacity

GET /v1/capacity?start_date={ISO}&end_date={ISO}
PropTypeDefault
start_date
ISO 8601
-
end_date
ISO 8601
-
team_id
string
-
member_id
string
-
group_by
"day" | "week" | "month"
-
curl "https://api.slatis.com/v1/capacity?start_date=2026-05-01T00:00:00Z&end_date=2026-05-07T00:00:00Z" \
  -H "Authorization: Bearer sk_live_xxx"

Response

{
  "success": true,
  "capacity": {
    "overview": {
      "total_members": 3,
      "active_members": 2,
      "average_utilization": 0.45,
      "total_bookings": 12,
      "available_slots": 36
    },
    "members": [
      {
        "object": "team_member",
        "id": "mem_01abc",
        "name": "Alex Rivera",
        "email": "alex@example.com",
        "avatar_url": null,
        "team": { "id": "team_01", "name": "Sales" },
        "capacity": {
          "max_bookings_per_day": 8,
          "max_bookings_in_range": 40,
          "current_bookings": 12,
          "utilization": 0.3,
          "available_slots": 28
        },
        "workload": {
          "total_hours": 40,
          "booked_hours": 6,
          "available_hours": 34
        },
        "bookings_by_status": {
          "scheduled": 12,
          "completed": 8,
          "cancelled": 2,
          "no_show": 0,
          "rescheduled": 1
        }
      }
    ],
    "timeline": [
      {
        "date": "2026-05-01",
        "total_bookings": 3,
        "scheduled_bookings": 2,
        "utilization": 0.6,
        "available_slots": 5
      }
    ]
  },
  "date_range": {
    "start": "2026-05-01T00:00:00.000Z",
    "end": "2026-05-07T00:00:00.000Z",
    "group_by": "day"
  }
}

Key fields

PropTypeDefault
overview.average_utilization
0.0 – 1.0
-
members[].capacity.utilization
0.0 – 1.0
-
members[].capacity.available_slots
integer
-
members[].workload.booked_hours
float
-

Common patterns

Prevent overloading a member — filter by capacity.utilization < 0.8 before passing assign_to to a booking create:

const { capacity } = await slatis.capacity.get({ start_date: startDate, end_date: endDate })
const available = capacity.members.filter(m => m.capacity.utilization < 0.8)

Surface remaining capacity in your UI — show capacity.available_slots as "X slots remaining" next to each team member.

Track team health over time — plot utilization across timeline entries to identify members at risk of burnout or consistent under-utilization.

On this page