Skip to content
Developers
Assignments

Upsert user assignments

POST /assignments

POST
/assignments

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

expand?string

Comma-separated expansions (user, project, capability). Defaults to project,capability.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://loading/api/v1/assignments" \  -H "Content-Type: application/json" \  -d '{    "items": [      {        "userId": "019cb675-c4df-7f8b-8a83-5f28581f5e7e",        "projectId": "019cb675-c4d6-7e90-8806-25e5145c3a06",        "capabilityId": null,        "date": "2026-01-06",        "hours": 8      }    ]  }'
{
  "data": [
    {
      "id": "019cb675-c4df-7f8b-8a83-5f28581f5e7e",
      "userId": "019cb675-c4df-7f8b-8a83-5f28581f5e7e",
      "projectId": "019cb675-c4d6-7e90-8806-25e5145c3a06",
      "capabilityId": null,
      "date": "2026-01-06",
      "hours": 8,
      "project": {
        "id": "019cb675-c4d6-7e90-8806-25e5145c3a06",
        "name": "CRM Sync",
        "status": "active"
      },
      "capability": null
    }
  ],
  "warnings": [
    {
      "code": "time_off_overlap",
      "message": "User Juan Méndez has approved time off 2026-05-10 → 2026-07-03 overlapping this assignment on 2026-05-24",
      "details": {
        "userId": "019cb675-c4df-7f8b-8a83-5f28581f5e7e",
        "timeOffRequestId": "019cb675-c4df-7f8b-8a83-5f28581f5e7f",
        "itemIndex": 0,
        "date": "2026-05-24"
      }
    }
  ]
}
Empty
Empty
Empty
Empty