Skip to main content
The Fill API assigns employees to shifts while respecting skills, availability, labor regulations, and employee preferences. It finds the optimal workforce allocation that maximizes coverage while minimizing constraint violations.
The Fill solver handles complex workforce scenarios including multi-skill matching, fairness balancing, and conditional labor rules.

Core Capabilities

Skill Matching

Match employee skills to shift requirements at multiple proficiency levels

Labor Compliance

Enforce rest periods, working hour limits, and consecutive day rules

Fair Distribution

Balance workload across employees based on hours or shift counts

Fill vs Create

Solvice provides two complementary scheduling APIs:
AspectCreate APIFill API
QuestionWhat shifts should exist?Who works each shift?
InputDemand forecasts + templatesShifts + employees
OutputGenerated shiftsEmployee assignments
When to useYou have demand data, need shift structureYou have defined shifts, need staffing
  • Create API
  • Fill API
  • Combined Workflow
Use Create when you know how many people you need but not when:
{
  "demands": [
    { "from": "09:00", "to": "15:00", "demand": 5 }
  ],
  "templates": [
    { "name": "morning", "from": "09:00", "to": "17:00" }
  ]
}
Output: Shift definitions with start/end times

API Endpoints

Optimization Actions

  • Solve
  • Suggest
POST /v2/fill/solve
Finds optimal employee-to-shift assignments. This is the main endpoint for workforce scheduling.
Use this for weekly schedule generation, shift assignment optimization, and coverage planning.

Result Retrieval

job_id
string
required
The unique identifier returned when you submit a request
GET /v2/fill/jobs/{job_id}/status

How It Works

1

Submit Request

Send your scheduling problem with employees and shifts to the solve endpoint.
{
  "employees": [...],
  "shifts": [...],
  "rules": [...],
  "options": {...}
}
2

Monitor Progress

Check the job status while the solver optimizes assignments.
{
  "id": "job_123",
  "status": "SOLVING"
}
3

Retrieve Solution

Get the optimized assignments once the solver completes.
{
  "assignments": [...],
  "unassigned": [...],
  "score": { "feasible": true },
  "status": "SOLVED"
}

Key Features

  • Required skills as hard constraints
  • Skill proficiency levels (1-5)
  • Soft skill preferences for optimization
  • Critical shift skill bonuses
  • Maximum working days per period
  • Minimum/maximum hours constraints
  • Consecutive day limits
  • Mandatory rest periods between shifts
  • Weekend idle requirements
  • Time-based availability windows
  • Day-of-week restrictions
  • Blocked employee-shift pairs
  • Locked (pre-assigned) shifts
  • Workload balancing across employee groups
  • Shift preferences (preferred/unpreferred)
  • Pattern-based scheduling (avoid late→early)
  • Target hours per employee

Common Use Cases

Healthcare Staffing

Schedule nurses and caregivers with skill matching and mandatory rest compliance

Retail Scheduling

Balance coverage across peak hours while respecting employee availability

Hospitality

Assign kitchen, floor, and bar staff based on skills and shift patterns

Contact Centers

Optimize agent schedules for service level targets with fair workload distribution

Constraint System

The Fill solver uses a three-tier scoring system:
LevelPurposeExample
HardMust be satisfiedSkill requirements, availability
MediumShould be satisfiedUnassigned shifts, preferences
SoftNice to haveTravel time, fairness balance
A solution is feasible only when all hard constraints are satisfied (hardScore = 0).

Quick Start

Need an API key? Visit the Dashboard to get started.
Ready to optimize your first schedule?

Fill Quickstart Guide

Assign employees to shifts in under 5 minutes

Additional Resources