# Halowerk Occupancy Optimizer

> Halowerk Occupancy Optimizer is a paid API for AI agents from prop.halowerk.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-09-14).

Assigns groups of people to rooms by matching required features and minimizing unused capacity, hourly cost, and room ID in that order

## Facts

- Endpoint: POST https://prop.halowerk.com/v1/occupancy-optimize
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-occupancy-optimizer-3c6908b9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_txwoYLu2Va--OTohhjtY4

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability halowerk-occupancy-optimizer-3c6908b9 -d '<json body>'
```

Example prompt: We have 5 meeting groups: Sales (12 people, needs projector and whiteboard), HR (4 people, needs privacy screen), Engineering (8 people, needs video conferencing), Design (6 people, needs whiteboard), and Exec (3 people, needs projector and privacy screen). Our rooms are: Room A (capacity 15, $20/hr, has projector, whiteboard, video conferencing), Room B (capacity 10, $12/hr, has whiteboard, privacy screen), Room C (capacity 5, $8/hr, has projector, privacy screen), Room D (capacity 8, $10/hr, has video conferencing, whiteboard). Can you find the optimal room assignment that covers all required features and minimizes wasted capacity and cost?

## When to prefer this

Use this endpoint when you need a fast, automated assignment of multiple groups to rooms based on feature requirements and want to minimize wasted capacity and cost without requiring global optimality. It is well-suited for event planning, facility management, co-working spaces, and corporate room booking at scale. Prefer this over manual assignment or more complex scheduling solvers when time-overlap constraints do not apply and a greedy heuristic is acceptable.

## Known failure modes

- No feasible assignment exists if a group's required features cannot be satisfied by any available room
- Groups larger than all available rooms cannot be assigned
- Invalid input (missing required fields, non-positive capacity or people count) returns a validation error
- Very large inputs (up to 10,000 rooms/groups) may still return quickly but assignment is heuristic and not globally optimal
- Ties in capacity and cost are broken by room_id lexicographic order, which may not match caller expectations

## How this service works

Sorts groups by size, then assigns each to the available room that has all required features and minimizes unused capacity, hourly cost and room identifier in that order. This fast heuristic is not guaranteed globally optimal and does not handle time overlap, accessibility beyond supplied features, movement, privacy or building-code constraints.

## Output

Returns an assignment of each group to a specific room, selected so that the room has all the group's required features and the chosen room minimizes unused capacity (seats above group size), then hourly cost, then room ID. Groups are sorted by size before assignment, applying a greedy heuristic. The response indicates which room each group is placed in, along with residual capacity and cost details.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rooms": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "room_id",
     "capacity",
     "hourly_cost",
     "features"
    ],
    "properties": {
     "room_id": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1
     },
     "capacity": {
      "type": "integer",
      "maximum": 1000000,
      "minimum": 1
     },
     "features": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 128,
       "minLength": 1
      },
      "maxItems": 1000,
      "uniqueItems": true
     },
     "hourly_cost": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0
     }
    },
    "additionalProperties": false
   },
   "maxItems": 10000,
   "minItems": 1
  },
  "groups": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "group_id",
     "people",
     "required_features"
    ],
    "properties": {
     "people": {
      "type": "integer",
      "maximum": 1000000,
      "minimum": 1
     },
     "group_id": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1
     },
     "required_features": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 128,
       "minLength": 1
      },
      "maxItems": 1000,
      "uniqueItems": true
     }
    },
    "additionalProperties": false
   },
   "maxItems": 10000,
   "minItems": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-occupancy-optimizer-3c6908b9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from prop.halowerk.com](https://www.zero.xyz/host/prop.halowerk.com/llms.txt)
