Skip to main content
The Fill API returns optimized shift assignments with scoring information and optional explanations.

Response Structure

Top-Level Fields

id
string (UUID)
required
Unique identifier for the solve job.
status
string
required
Job status: QUEUED, SOLVING, SOLVED, or ERROR.
score
object
required
Solution quality indicator. See Score.
assignments
array
required
List of employee-shift pairings. See Assignment.
unassigned
array
List of shift names that could not be filled.
unservedReasons
object
Map of unassigned shift name to the list of hard constraints (e.g. Employee Skill Match) that blocked assignment for that shift.
violations
array
Not currently populated by Fill. See ViolatedConstraint.
suggestions
array
Not yet implemented for Fill. See Suggestion.

Score

The score indicates solution quality using a three-tier system.
hardScore
integer
required
Hard constraint violations. Must be 0 for a feasible solution.
mediumScore
integer
required
Medium constraint violations. Less critical than hard constraints.
softScore
integer
required
Soft constraint penalties. Used to optimize solution quality.
feasible
boolean
required
true if hardScore is 0. Indicates all hard constraints are satisfied.

Score Interpretation

A negative soft score is normal and expected. The solver minimizes soft score violations while keeping hard constraints satisfied.

Assignment

Each assignment represents an employee assigned to a shift.
shift
string
required
Shift identifier from the request.
from
datetime
required
Shift start time.
to
datetime
required
Shift end time.
skills
array
required
Skills required for this shift.
employee
string
required
Assigned employee name.
travelTimeInSeconds
integer
Travel time from employee location to shift location (if locations provided).

Example Assignment List


ViolatedConstraint

violations is a field inherited from the shared response model, but Fill does not currently populate it — it is always absent on Fill responses. Use unassigned and unservedReasons on this response for per-shift blocking information, or call /v2/fill/jobs/{id}/explanation for detailed conflict data (conflicts, unresolved).
name
string
required
Constraint identifier.
value
number
required
Violation magnitude. Higher values indicate larger deviations.
level
string
required
Constraint level: HARD, MEDIUM, or SOFT.

Suggestion

The Fill /suggest endpoint is not yet implemented, and FillMapping never sets suggestions on a real solve response. This section is documented for forward compatibility only.
Alternative assignment options intended to be returned by the suggest API, using the same shape as Assignment.
shift
string
required
Shift identifier from the request.
from
datetime
required
Shift start time.
to
datetime
required
Shift end time.
skills
array
required
Skills required for this shift.
employee
string
required
Suggested employee.
travelTimeInSeconds
integer
Travel time from employee location to shift location (if locations provided).

Weights Reference

Available constraint weights for customization in requests.

Custom Weight Format

Override defaults using the format <weight><priority>:
Use weights to balance competing objectives. Increase weights for constraints that matter most to your business.