Stateless Solve

Submit a stateless solve job

Accept a self-contained payload and start an async solve. Returns a job id to poll.

post/api/v1/solve

Request

  • Base URL: https://api.vigotime.com
  • URL: https://api.vigotime.com/api/v1/solve
  • Auth: none declared

Request body

area_groupsobject[] nullable

Area groups (vigotime entity format)

availabilityobject nullable

Verfügbarkeit je Mitarbeiter und Datum: {employeeId: {'2026-09-01': true}}. false = an dem Tag nicht einsetzbar.

collective_agreementsobject nullable

Collective agreements (agreement_id -> agreement; vigotime entity format). Carries the FR-239 tariff working-time limits so a tariff-bound stateless solve enforces them (DEF-BRAVO-STATELESS-COLLECTIVE-AGREEMENT-01).

departmentobject required

Department as JSON object in the vigotime entity format (camelCase)

employee_boundary_week_hoursobject nullable

Bereits gearbeitete Stunden in der ISO-Woche des Fensterstarts, VOR dem Start, je MA. Für die Wochenkappe der angeschnittenen Woche.

employee_historyobject nullable

Gearbeitete Tage vor dem Fenster je MA (ISO-Daten). Für Folgetage- und datums-gekoppelte Regeln über die Plangrenze.

employee_last_shift_endobject nullable

Endzeitpunkt der letzten Schicht vor dem Fenster je MA (ISO-Datetime, tz-aware empfohlen). Für die Mindestruhe am ersten Plantag.

employee_prior_night_runobject nullable

Länge der am Vortag endenden Nachtserie je MA. Für Nachterholung über die Plangrenze.

employeesobject[] required

Employees as JSON objects in the vigotime entity format (camelCase)

end_datestring date required

Last day of the planning window (inclusive)

holiday_datesstring[] nullable

Feiertage als ISO-Datumsliste (z. B. ['2026-12-25']). Steuert holiday/isHoliday-Regeln; ohne Angabe gilt der eingebaute deutsche Feiertags-Superset.

hourly_ratesobject nullable

Per-employee hourly rate

locked_assignmentsobject[] nullable

Vorbelegte/handgesetzte Schichten, die fix bleiben. Je Eintrag {employeeId, shiftDefinitionId, date}. Der Solver plant um sie herum.

planning_rulesobject[] nullable

Planning rules (vigotime entity format)

preferencesobject nullable

Per-employee preferences

previous_assignmentsobject[] nullable

Zuweisungen des Vorplans (Stabilität/Replan): {employeeId, shiftId, date}. Der Solver bleibt möglichst nah daran (minimale Änderung).

qualificationsobject nullable

Employee qualifications (employee_id -> qualification ids); derived from employees if omitted

shiftsobject[] required

Shift definitions as JSON objects in the vigotime entity format (camelCase)

sick_leavesobject nullable

Sick-leave dates per employee

social_pointsobject nullable

Social-Points-GUTHABEN je Mitarbeiter: {employeeId: 100}. Die Punkte, die eine Person für Wunscherfüllungen 'ausgeben' kann. Überschreibt ein ggf. am Mitarbeiter gesetztes socialPoints-Feld. Zusammen mit wish_costs aktiv → weiches Budget: die Summe der gewährten Wunschkosten SOLL das Guthaben nicht übersteigen (Überschreitung = Strafe, nie unlösbar). Ohne wish_costs wirkungslos.

soft_code_assignmentsobject nullable

Kürzel als weiche Vorgaben, gruppiert nach {'should': [...], 'may': [...]}. Je Eintrag {employeeId, date, ...}.

staffing_rulesobject[] nullable

Staffing rules (vigotime entity format)

start_datestring date required

First day of the planning window (inclusive)

vacationsobject nullable

Vacation dates per employee

webhook_secretstring nullable

Optional shared secret. If set, the webhook request carries an HMAC-SHA256 signature in the X-Vigotime-Signature header.

webhook_urlstring nullable

Optional https URL that is POSTed once the solve finishes (completed or failed).

wish_costsobject nullable

KOSTEN (pointCost) einer Wunscherfüllung je Mitarbeiter und Datum: {employeeId: {'2026-09-03': 20}}. Der bezahlte Preis eines gewünschten freien Tages (z. B. baseCostPerDay × dayTypeMultiplier × priorityMultiplier). Wenn gesetzt, gewichtet der Solver das Honorieren PROPORTIONAL zum Preis (mehr bezahlt → stärker honoriert), statt nur nach grobem low/normal/high-Label. Speist zudem das Social-Points-Budget.

wish_prioritiesobject nullable

Wunsch-Priorität je Mitarbeiter und Datum: {employeeId: {'2026-09-03': 'high'}}. low/normal/high → Gewicht 0.5/1.0/2.0 (Social-Points-Gewichtung).

wish_specsobject nullable

Differenzierte Wunsch-Spezifikationen je MA (z. B. Wochenend-Atomarität, Serien). Feinere Steuerung als die flache wishes-Map.

wishesobject nullable

Wished dates per employee

workplace_duration_rulesobject[] nullable

Workplace duration rules (vigotime entity format): target/covered duration per person at a workplace on the wp_assign axis. severity 'must' -> HARD bound, 'should' -> SOFT target. Omitted/empty -> inert (B0 Phase 3, Issue #57 Feature-2/B1).

workplacesobject[] nullable

Workplaces (vigotime entity format)

Response

Successful Response

job_idstring required
prechecksobject[]

#275 Rückfrage-Kanal: Warnungen VOR dem Solve, z. B. RULE_NEEDS_FUTURE_CONTEXT — eine Kopplungsregel blockt Tage nach dem Fenster, aber die Anfrage enthält keine Abwesenheiten dafür. Der Job läuft trotzdem; KI-Clients sollen die Rückfrage an den Nutzer weiterreichen und fehlende Daten nachliefern.

statusstring required
tierstring required

Changes

No recorded changes to this operation across all 1 revision of this API.