Response Structure
Top-Level Fields
Unique identifier for the solve job.
Job status:
QUEUED, SOLVING, SOLVED, or ERROR.List of employee-shift pairings. See Assignment.
List of shift names that could not be filled.
Map of unassigned shift name to the list of hard constraints (e.g.
Employee Skill Match) that blocked assignment for that shift.Not currently populated by Fill. See ViolatedConstraint.
Not yet implemented for Fill. See Suggestion.
Score
The score indicates solution quality using a three-tier system.Hard constraint violations. Must be
0 for a feasible solution.Medium constraint violations. Less critical than hard constraints.
Soft constraint penalties. Used to optimize solution quality.
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 identifier from the request.
Shift start time.
Shift end time.
Skills required for this shift.
Assigned employee name.
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).
Constraint identifier.
Violation magnitude. Higher values indicate larger deviations.
Constraint level:
HARD, MEDIUM, or SOFT.Suggestion
Alternative assignment options intended to be returned by the suggest API, using the same shape as Assignment.Shift identifier from the request.
Shift start time.
Shift end time.
Skills required for this shift.
Suggested employee.
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>: