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
| Field | Type | Required | Description |
|---|---|---|---|
| file | multipart/form-data (CSV) | Yes | Roster CSV matching the template columns in the hospital guide. |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| sessionId | string | Yes | Pass as rosterSessionId on /hospital/callout/solve. |
Errors
| Code | Meaning | Typical cause | Suggested fix |
|---|---|---|---|
| 400 | Bad request | Malformed JSON or missing required headers. | Validate Content-Type and JSON syntax before retrying. |
| 401 | Unauthorized | Missing or invalid API key in Authorization or x-api-key header. | Send Bearer <key> or x-api-key with a valid pilot token. |
| 422 | Unprocessable entity | Invalid payload shape, unsupported problem type, or infeasible constraints. | Fix field errors in the response detail; relax constraints and retry. |
| 429 | Too many requests | Per-key rate limit exceeded (default 120 requests per minute). | Backoff with jitter; cache results; request a higher limit for production. |
| 500 | Internal server error | Unexpected backend failure. | Retry with exponential backoff; contact support if persistent. |
| 501 | Not implemented | Problem 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.
Related
Found an issue? Report documentation feedback