Developer portal
Data formats
Start with the fields your team already knows. These guides show what to send for schedules, routes, and staffing jobs before you touch the live API.
Scheduling inputs
Send the work that must happen, how long it takes, who performs it, and the rules that cannot break.
tasks[].id
Short identifier for the work item.
Example: foundation
tasks[].duration
Estimated effort in whole planning units.
Example: 3
tasks[].crew
Crew or resource assigned to the task.
Example: Crew B
constraints[]
Dependencies or blocked windows the final plan must satisfy.
Example: framing must happen after foundation
Measurement template columns
task_id, duration, crew, depends_on, notes
Routing inputs
Send the stops to visit, vehicle capacity or shift limits, and any delivery windows that matter.
stops[].id
Stop identifier or customer reference.
Example: hospital
stops[].serviceWindow
Time window the stop must respect.
Example: 08:30-10:00
vehicles[].capacity
How much the route can carry.
Example: 12
constraints[]
Operational rules like stop ordering or service timing.
Example: retail-hub after 11:30
Measurement template columns
stop_id, window_start, window_end, vehicle_id, notes
Allocation inputs
Send the shifts to cover, the people available, and the skill or fatigue rules you need to preserve.
shifts[].id
Shift name or identifier.
Example: night
staff[].skills
Capabilities or certifications for each person.
Example: ["operator", "lead"]
staff[].maxHours
Work-hour ceiling to protect coverage quality.
Example: 40
constraints[]
Rules like coverage minimums or no-back-to-back shifts.
Example: No back-to-back night and morning shifts
Measurement template columns
person, skill, availability, max_hours, notes