Skip to content

Developer portal

POST /hospital/upload-roster

Upload a CSV roster and receive a 24-hour session id for solves.

PilotPOST /hospital/upload-rosterAuth required

Summary

Upload a CSV roster and receive a 24-hour session id for solves.

Example

curl

curl -X POST "https://sparkling-vibrancy-production-1a7a.up.railway.app/optimize" \
  -H "Authorization: Bearer 811f31d4-5b8e-4ed0-a7a2-8176e05eba63" \
  -H "Content-Type: application/json" \
  -d '{}'

Request body

FieldTypeRequiredDescription
filemultipart/form-data (CSV)Yes

Roster CSV matching the template columns in the hospital guide.

Response

FieldTypeRequiredDescription
sessionIdstringYes

Pass as rosterSessionId on /hospital/callout/solve.

Errors

CodeMeaningTypical causeSuggested fix
400Bad requestMalformed JSON or missing required headers.Validate Content-Type and JSON syntax before retrying.
401UnauthorizedMissing or invalid API key in Authorization or x-api-key header.Send Bearer <key> or x-api-key with a valid pilot token.
422Unprocessable entityInvalid payload shape, unsupported problem type, or infeasible constraints.Fix field errors in the response detail; relax constraints and retry.
429Too many requestsPer-key rate limit exceeded (default 120 requests per minute).Backoff with jitter; cache results; request a higher limit for production.
500Internal server errorUnexpected backend failure.Retry with exponential backoff; contact support if persistent.
501Not implementedProblem type not yet supported on the live solver path (routing, allocation).Use type schedule for live jobs, or follow the roadmap for routing/allocation.

See the full errors reference.